SORU
25 NİSAN 2010, Pazar


Git commit ne bulmaya geldi

Bir sha1 verilen gelir tamamlama ne olduğunu bulmak için herhangi bir yolu var mı?

Bonus eğer bu kullanma Ruby Tane yüklemenin nasıl yapılacağını söylersen işaret eder.

CEVAP
25 NİSAN 2010, Pazar


Dav bilgileri doğrudan saklı değil bu doğru olsa da, o hiç bir yere varamazsın anlamına gelmez. Burada yapabileceğiniz bir kaç şey.

Tamamlama dalları bulmak

git branch --contains <commit>

Bu senin kendi tarihinin taahhüt vermiş olan tüm dallarını söyler. Belli ki bu olursa eğer zaten birleştirilmiş eğer taahhüt daha az yararlıdır.

Bu reflogs arama

Eğer ki yapıldı tamamlama depo çalışıyorsanız, bunu işlemek için hattı için reflogs arama yapabilirsiniz. Reflogs 90 günden daha eski gıt-gc tarafından budanmış, eğer çok yaşlı işlerse, onu bulamazsınız. O bunu dedi:

git reflog show --all | grep a871742

bulmak için a871742 işlemek. Çıktı böyle bir şey olmalı:

a871742 refs/heads/completion@{0}: commit (amend): mpc-completion: total rewrite

bu dalda yapıldı commit "belirten". tamamlama Varsayılan çıkış gösterir karma tamamlama, tam karma aramak için değil emin olun, böylece kısaltılmış ya da bir şey bulamazsınız.

git reflog show aslında git log -g --abbrev-commit --pretty=oneline, Eğer farklı şeyler için grep için kullanılabilir hale getirmek için çıkış biçimi keman etmek istiyorsanız, bu başlangıç noktası yani sadece bir takma ad!

Değilsen çalışmak, depo nerede tamamlama yapılmış, en iyi yapabileceğin bu durumda inceler ve reflogs bulmak zaman işlemek ilk tanıtıldı repo; herhangi bir şans ile, getirilen Dalı olduğunu belirlemiştir. Bu iki taahhüt ağaç giremezsin ve aynı anda reflogs çünkü biraz daha karmaşık. Reflog çıkışını ayrıştırmak için, her karma ise istenen taahhüt içeren ya da değil görmek incelemek isterdim.

Bir sonraki tamamlama birleştirme bulabilirsiniz

Bu iş akışı bağlıdır, ama iyi bir iş akışı ile, tamamlar sonra birleştirilmiş olan kalkınma dallar üzerinde yapılır. Bunu yapmak için:

git log --merges <commit>..

görmek için birleştirme atası olarak taahhüt verdik, o tamamlar. (Eğer işlerse sadece birleştirilmiş bir kez oldu, ilk kez peşindesin birleştirme olmalıdır; bir kaç incelemek zorundasın aksi halde, sanırım.) Commit mesajı birleştirilmiş şube adını içermelidir birleştirme.

Eğer bunu saymak mümkün olmasını istiyorsanız, birleştirme bile ileri durumda yaratılış işlemeye zorlamak için git merge 10 *seçeneği kullanmak isteyebilirsiniz. (Gereksiz yere eğer kafamı allak bullak olabileceğini çok istekli, alamadım.) VonC answer to a related question yardımsever bu konu anlatılıyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012
  • RobertDuskin

    RobertDuskin

    12 HAZİRAN 2008