2013-08-16 34 views

Trả lời

19

Bạn có thể thử này:

git grep 'search-string' $(git ls-remote . 'refs/remotes/*' | cut -f 2) 

Điều đó sẽ tìm kiếm tất cả các chi nhánh từ xa cho search-string. Vì tham chiếu tượng trưng HEAD được nhân đôi, bạn có thể kết thúc tìm kiếm cùng một lần commit hai lần. Hy vọng rằng đó không phải là một vấn đề. Nếu vậy, bạn có thể lọc nó ra với:

git grep 'search-string' \ 
    $(git ls-remote . 'refs/remotes/*' | grep -v HEAD | cut -f 2) 

Nếu bạn cần phải khai thác thông qua toàn bộ lịch sử của bạn, bạn cũng có thể thử:

git grep 'search-string' $(git rev-list --all) 
+0

công trình lệnh thứ hai đối với tôi, nhưng là người đầu tiên không; Tôi nhận được 'fatal: bad flag '->' được sử dụng sau tên tập tin ' – patrickvacek

+1

Xin lỗi về điều đó. Tôi quên rằng 'git branch -r' sẽ hiển thị nội dung của refs tượng trưng trong đó. Tôi đã cập nhật câu trả lời của tôi với một cái gì đó khác mà làm việc, nhưng không khá là đẹp. – jszakmeister

4

Giả sử bạn đang theo dõi tất cả các chi nhánh từ xa chí này tìm kiếm nó trong tất cả các cam kết.

git log --all -p | grep 'search-string' 

Để theo dõi tất cả các chi nhánh từ xa:

for remote in `git branch -r`; do git branch --track $remote; done 
Các vấn đề liên quan