回答:
単純にgit log <hash>
マージコミットを呼び出すと、その親のハッシュの省略形が表示されます。
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git
番号に従って親を出力します。最初の(左端の)ハッシュは最初の親を表し、以下同様です。
必要なのがハッシュだけの場合、同等の2つの選択肢は次のとおりです。
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list
親のハッシュを表示することもできますが、最初にコミットのハッシュがリストされます:
$ git rev-list --parents -n 1 <commit>
親を調べたい場合は、カラットとして<commit>^1
and <commit>^2
で直接参照できます。例:
git show <commit>^1
これは一般化します。タコのマージの場合、n 番目の親をとして参照できます<commit>^n
。ですべての親を参照できますが<commit>^@
、単一のコミットが必要な場合は機能しません。追加のサフィックスは、nの後に表示することができます番目の親構文を(例えば<commit>^2^
、<commit>^2^@
彼らは後にすることはできません一方で、) ^@
(<commit>^@^
有効ではありません)。この構文の詳細については、rev-parse
manページを参照してください。
git log
git show
親が1つしかない場合は、非常に異なるものを出力します。好むgit log
あなたは一貫性が必要な場合。
git (v2.17.1)
。出力にMerge
ファイルが表示されませんgit log -1
。
以下は、マージの親を表示するために見つけた最も簡単な方法です
git show --pretty=raw 3706454
git cat-file -p 3706454
同じですが、さらに短くなっています:)
git log --pretty=raw -1 3706454