Bir Gıt bulma herhangi bir dalda bir dize tanıttı taahhüt
Herhangi tanıtıldı belirli bir dize işlemek bulmak mümkün olmak istiyorum
herhangi bir şube, bunu nasıl yapabilirim? Bir şey (ben win 32 değiştirilmiş),buldum
ama git whatchanged
farklı dalları içine bakarak gibi görünmüyor
(py3k chunk, sadece bir msys/win satır besleme düzeltme) göz ardı
git whatchanged -- <file> | \
grep "^commit " | \
python -c "exec(\"import sys,msvcrt,os\nmsvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)\nfor l in sys.stdin: print(l.split()[1])\")" | \
xargs -i% git show origin % -- <file>
Eğer gerçekten çözüm yavaş ise bir önemi yok.
CEVAP
Yapabilirsiniz:
git log -S <whatever> --source --all
Tüm bulmak veya eklenen kaldırıldı tamamlardize sabitwhatever
. --all
parametre her birimden başlamak anlamına gelir ve --source
taahhüt bulmada yol göstermek anlamına gelir. Çoğu zaman yararlıdır -p
her işleyen lekeler de getirecek göstermek için ekleyin.
1.7.4 beri gıt sürümleri de bir benzeri var-G
düzenli ifade alır seçeneği. Bu aslında (ve daha fazla) belirgin farklı semantiği, this blog post from Junio Hamano açıkladı.
thameera yorum işaret ettiği gibi, Eğer bir boşluk veya diğer özel karakterler, örneğin içeriyorsa arama terimi tırnak koymak gerekir:
git log -S 'hello world' --source --all
git log -S "dude, where's my car?" --source --all
İşte size bir örnek -G
function foo() {
tekrarlarını bulmak için kullanma
git log -G "^(\s)*function foo[(][)](\s)*{$" --source --all
Ruby ile bir dize bir karakter bulma o...
Git: &; şu anda herhangi bir dalda " D...
Dize birleştirme: () herhangi bir para...
Dize çıktı: format veya herhangi bir p...
SQL eklenen dize ile bir alandaki tüm ...