2013-06-14 35 views
5

Giả sử tôi có một tệp bar.cpp mà tôi đã cam kết thành git. Đôi khi trong quá khứ, tôi từng có một foo trong tập tin đó.Làm cách nào để tìm tất cả các phiên bản git của tệp có chứa foo?

HỎI

Làm thế nào để tìm thấy tất cả các phiên bản git của bar.cpp có chứa rằng chuỗi foo?

LƯU Ý

Một giải pháp dòng lệnh sẽ là tuyệt vời.

+0

Bạn có muốn * tất cả * các phiên bản có chứa 'foo', hoặc sẽ 'git bisect' và' grep' làm gì? – Ryan

+0

@minitech nếu tôi có thể bắt đầu bằng cách tìm các phiên bản * mới nhất * hoặc mới hơn có chứa 'foo', điều đó sẽ đi một chặng đường dài (btw, tôi không quen với' git bisect'). – kfmfe04

+0

'git bisect chạy grep foo bar.cpp' là ý tưởng của tôi ở đó, nhưng @ StevenPenny có vẻ tốt hơn :) – Ryan

Trả lời

4

có thể sử dụng the pickaxe

git log -S foo bar.cpp 

và nếu bạn muốn diffs

git log -p -S foo bar.cpp 

Thông tin thêm

 
-S<string> 

    Look for differences that introduce or remove an instance of 
    <string>. Note that this is different than the string simply 
    appearing in diff output; see the pickaxe entry in gitdiffcore(7) 
    for more details. 
+0

+1 tuyệt vời:' -p -S' hoạt động tuyệt vời – kfmfe04

Các vấn đề liên quan