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>^1
ve 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-parse
kılavuz sayfasını okuyun .
git log
ve git show
tek bir ebeveyn olduğunda çok farklı şeyler çıktılar. git log
Tutarlılık istiyorsanız tercih edin.
git (v2.17.1)
. Çıktıda Merge
dosya görmüyorum git log -1
.