如何在git中获取合并提交的父级?

时间:2012-01-30 04:25:50

标签: git merge

一些git命令将父级作为修订;其他人(例如git revert),作为父母号码。如何在两种情况下找到父母。我不想使用图形日志命令,因为这通常需要向下滚动一棵长树才能找到第二个父级。

2 个答案:

答案 0 :(得分:147)

简单git log <hash>调用合并提交显示其父项的缩写哈希:

 $ git log -1 395f65d
 commit 395f65d438b13fb1fded88a330dc06c3b0951046
 Merge: 9901923 d28790d
 ...

git根据数字输出父母:第一个(最左边)哈希是第一个父亲,依此类推。

如果你想要的只是哈希,那么两个等价的选择是:

$ 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<commit>^2来引用父母,例如:

git show <commit>^1

这确实概括了;对于章鱼合并,您可以将n th 父级称为<commit>^n。您可以使用<commit>^@来引用所有父级,但是当需要单次提交时,这不起作用。附加后缀可以出现在n th 父语法之后(例如<commit>^2^<commit>^2^@),而^@之后不能出现<commit>^@^有效)。有关此语法的更多信息,请阅读rev-parse手册页。

答案 1 :(得分:29)

以下是我发现查看合并父母的最简单方法

git show --pretty=raw 3706454