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
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.
Nasıl günlük commit çözülmüş gibi bir ...
Bir kısmı geri git ile commit...
Git: bir önceki commit dosyayı teslim ...
Nasıl Subversion listesini almak için ...
Nasıl gıt şubeleri, en son commit göre...