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

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Bigapplemagic

    Bigapplemagi

    22 EYLÜL 2011
  • Samantha Crain

    Samantha Cra

    30 EKİM 2008