2015-08-31 16 views
7

Belirli bir yazardan gelen tüm satırları hala mevcut olarak belirlemek istiyorum. Örneğin, bir Tony projemde çalışmıştı ve geliştirme şubemde hala var olan ve Tony'nin yazdığı bir taahhütte bulunan tüm çizgileri bulmak istedim.Bir yazar tarafından değiştirilmiş olan tüm geçerli hatları bul

+0

'sağlar? – wnoise

+1

@wnoise Temelde tüm dosyalar için git blame'i aramak için bir yol arıyorum ve sadece belirli bir yazarın sadece çıktılarını grep. – stevebot

cevap

7

Belki sadece git blame FILE | grep "Some Name".

Yoksa yinelemeli birden fazla dosya üzerinden arama suçlamak + istiyorsanız:

for file in $(git ls-files); do git blame $file | grep "Some Name"; done 

Yoksa yukarıdan ne alacağı daha bazı farklı çıkış arıyorsanız, olmaya soruyu güncellenmesi düşünün lütfen İstediğiniz çıktı hakkında daha açık.

Not: Asıl olarak aşağıdaki yaklaşımı kullanmayı önerdim, ancak bununla birlikte çalıştırabileceğiniz sorun, çalışma dizininizde gerçekten gitmeyen dosyaları bulabilmesidir ve bu nedenle git blame Bu dosyalar için başarısız ve döngüyü kır.

find . -type f -name "*.foo" | xargs git blame | grep "Some Name" 
7

sideshowbarker çoğunlukla doğrudur, fakat sabit bir ikinci komut şudur:

find . -type f -exec git blame {} \; | grep "Some Name" 

Ben yapmayı tercih ediyorum rağmen: ne `git suçlama farklılık istediğini ne yapar

for FILE in $(git ls-files) ; do git blame $FILE | grep "Some Name" ; done | less 
İlgili konular