Kesinti içeriğini (yani, iletiler ve benzerlerinin aksine gerçek kaynak satırları) aramak için şunları yapmanız gerekir:
git grep <regexp> $(git rev-list --all)
git rev-list --all | xargs git grep <expression>
"Bağımsız değişken listesi çok uzun" hatasıyla karşılaşırsanız çalışır.
Aramayı bazı alt ağaçlarla (örneğin, "lib / util") sınırlamak istiyorsanız, bunu rev-list
alt komutlara iletmeniz ve grep
ayrıca:
git grep <regexp> $(git rev-list --all -- lib/util) -- lib/util
Bu, tüm taahhüt metninizi gözden geçirecektir regexp
.
Her iki komutta da yolun geçmesinin nedeni, rev-list
tüm değişikliklerin lib/util
gerçekleştiği revizyonlar listesini döndürecek , ancak aynı zamanda grep
yalnızca arama yapacak şekilde geçmeniz gerektiğidir lib/util
.
Sadece aşağıdaki senaryoyu düşünün: grep
aynı <regexp>
döndürülen revizyonda bulunan diğer dosyalarda da aynı şeyi bulabilir rev-list
(bu revizyonda o dosyada değişiklik olmasa bile).
Kaynağınızı aramanın diğer bazı yararlı yolları:
Çalışma ağacında normal ifade normal ifadesiyle eşleşen metni arayın:
git grep <regexp>
Çalışma ağacında normal ifade regexp1 veya regexp2 ile eşleşen metin satırlarını arayın:
git grep -e <regexp1> [--or] -e <regexp2>
Çalışma ağacında yalnızca normal dosya yollarını bildiren normal ifade regexp1 ve regexp2 ile eşleşen metin satırlarını arayın:
git grep -l -e <regexp1> --and -e <regexp2>
Çalışma ağacında normal ifade normal ifadesiyle eşleşen metin satırları ve normal ifade normal ifadesiyle eşleşen metin satırları olan dosyaları arayın:
git grep -l --all-match -e <regexp1> -e <regexp2>
Çalışma ağacında, eşleşen metin eşleme desen satırlarını arayın:
git diff --unified=0 | grep <pattern>
Tüm düzeltmeleri normal ifade normal ifadesiyle eşleşen metni arayın:
git grep <regexp> $(git rev-list --all)
Normal ifade normal ifadesiyle eşleşen metni bulmak için rev1 ve rev2 arasındaki tüm düzeltmeleri arayın:
git grep <regexp> $(git rev-list <rev1>..<rev2>)
git log -S
ve suçlama hakkında) * ["git log --grep" ile eğlence] [2] (arama iletileri) ) * ["Git grep" ile eğlence] [3] [2]: gitster.livejournal.com/30195.html [3]: gitster.livejournal.com/27674.html