在git中获取合并提交的父母
鉴于合并提交,我怎么能得到它的父母? 一些git命令把父母作为一个修订; 其他人(如git revert
),作为父母号码。 我想知道如何得到这两种情况下的父母。 我不想使用graphics日志命令,因为通常需要向下滚动长树才能find第二个父级。
另外请注意,正常的日志输出显示父母的缩写哈希,不需要滚动:
commit 395f65d438b13fb1fded88a330dc06c3b0951046 Merge: 9901923 d28790d ...
git总是按父代号的顺序打印它们:第一个散列是第一个父代的,依此类推。
如果你只是想要哈希,两个等价的select:
git log --pretty=%P -n 1 <commit> git show --pretty=%P <commit>
rev-list
也可以显示提交的父哈希值。 它会首先列出提交的哈希,然后是父母的哈希。
git rev-list --parents -n 1 <commit>
如果你想检查父母,你可以用克拉直接引用它们作为<commit>^1
和<commit>^2
,例如:
git show <commit>^1
这是一般化的; 对于章鱼合并,你可以参考第n 个父母作为<commit>^n
。 您可以使用<commit>^@
来引用所有的父母,但是当需要单个提交时,这不起作用。 额外的后缀可以在第n 个父语法之后出现(例如<commit>^2^
, <commit>^2^@
),而^@
( <commit>^@^
无效后它们不能)。 有关此语法的更多信息,请阅读rev-parse
手册页。
还要注意,正常的日志输出确实显示父母的缩写哈希:
commit 395f65d438b13fb1fded88a330dc06c3b0951046 Merge: 9901923 d28790d ...
以下是我发现查看合并的父母的最简单的方法
git show --pretty=raw 3706454