回答:
単純に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>^1and <commit>^2で直接参照できます。例:
git show <commit>^1
これは一般化します。タコのマージの場合、n 番目の親をとして参照できます<commit>^n。ですべての親を参照できますが<commit>^@、単一のコミットが必要な場合は機能しません。追加のサフィックスは、nの後に表示することができます番目の親構文を(例えば<commit>^2^、<commit>^2^@彼らは後にすることはできません一方で、) ^@(<commit>^@^有効ではありません)。この構文の詳細については、rev-parsemanページを参照してください。
git loggit 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