SORU
28 NİSAN 2011, PERŞEMBE


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
28 NİSAN 2011, PERŞEMBE


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • psidot

    psidot

    2 Kasım 2006
  • Vsauce

    Vsauce

    30 Temmuz 2007