Yanıtlar:
Basit git log <hash>bir birleştirme taahhüdü, ebeveynlerinin kısaltılmış karmalarını gösterir:
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git ebeveynleri numaralarına göre çıkarır: ilk (en soldaki) karma ilk ebeveyn içindir, vb.
İstediğiniz tek şey sadece karmalarsa, iki eşdeğer seçenek şunlardır:
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list ilk önce bir taahhüt için hash'ı listeleyecek olsa da, ebeveynlerin karmalarını da gösterebilir:
$ git rev-list --parents -n 1 <commit>
Ebeveynleri incelemek istiyorsanız, onlara doğrudan karatlarla <commit>^1ve gibi başvurabilirsiniz <commit>^2, örneğin:
git show <commit>^1
Bu genelleme yapar; bir ahtapot için size n başvurabilirsiniz birleştirme inci olarak ebeveyn <commit>^n. Tüm ebeveynlere başvurabilirsiniz <commit>^@, ancak tek bir taahhüt gerektiğinde bu işe yaramaz. Ek sonlar, ninci üst sözdiziminden sonra (ör <commit>^2^. <commit>^2^@) Görünebilir, ancak sonra ekleyemezler ^@( <commit>^@^geçerli değildir). Bu sözdizimi hakkında daha fazla bilgi için rev-parsekılavuz sayfasını okuyun .
git logve git showtek bir ebeveyn olduğunda çok farklı şeyler çıktılar. git logTutarlılık istiyorsanız tercih edin.
git (v2.17.1). Çıktıda Mergedosya görmüyorum git log -1.