SORU
14 NİSAN 2009, Salı


Nasıl belirli bir dize için depodaki Git ve Mercurial tüm tamamlar içinde arama yapmak için?

Birkaç dal ve sarkan taahhüt ile Git deposu var. Belirli bir dize için bir depo olarak tamamlar aramak istiyorum.

Tarih içinde işleyen bir günlük almak için nasıl biliyorum, ama bu dallar ya da sarkan lekeler, BAŞIN sadece tarih dahil etmeyin. Yanlış var ki hepsini, belirli bir taahhüt bulmak için almak istiyorum.

Aynı zamanda geçiş yapmayı düşünüyorum Mercurial olarak bunu yapmak için nasıl bilmek istiyorum.

CEVAP
14 NİSAN 2009, Salı


git log -g iptalleri ile sarkan görebilirsiniz.

-g, --walk-reflogs
 Instead of walking the commit ancestry chain, walk reflog entries from
 the most recent one to older ones. 

Bu sarkan bir tamamlama iletisi belirli bir dize bulmak için yapabilirsiniz, böylece:

git log -g --grep=search_for_this

Eğer belirli bir dize için değişiklik aramak istiyorsanız, alternatif olarak, kazma arama seçeneğini kullanabilirsiniz, "S":

git log -g -Ssearch_for_this
# this also works but may be slower, it only shows text-added results
git grep search_for_this $(git log -g --pretty=format:%h)

Git 1.7.4 9**, sen-pass G&; regexp^ lt için izin verecektir . bir satır içeren bir zaman bulmak için <regexp>-S yapamayacağınız taşındı. -S tek satır dize içeren toplam sayısı (ekleme/dize çıkarmadan yani) değiştirilmiştir.

Son olarak, gitk ile sarkan taahhüt görselleştirmek için kullanabilirsiniz:

gitk --all $(git log -g --pretty=format:%h)

Ve sonra arama özelliklerini yanlış dosya aramak için kullanın. Tüm bu çalışma eksik tamamlama varsayarak "doldu" ve eğer 30 gün ve reflogs ölmeni ya da bunları sona erecek bir komut Çalıştır. sarkan olacak olan çöp toplanan olmuş.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010
  • sinumatic

    sinumatic

    19 Aralık 2006