如何在git中找到已搜索提交的第二个父级?

4
在git中,您可以使用正则表达式找到最后一次合并提交: git show :/^Merge 然而,我想找到该提交的第二个父提交,但是似乎找不到可行的方法: git show :/^Merge/^2 是否有任何语法可以让我这样做?
我的最终目标是设置一个类似以下命令的别名: git diff :/^Merge/^2..HEAD 这将让我轻松地查看从我的功能分支到主分支的差异。
1个回答

7

看起来:/<text>语法等同于HEAD^{/<text>}。现在我们有了一个行尾来分隔修订规范,我们可以继续:

HEAD^{/<text>}^2

看起来它能够正常工作,在我本地分支进行了初步测试后


谢谢!以下命令确实有效:git diff HEAD^{/^Merge}^2..HEAD 非常有用。 - yellowblood
下面的命令将得到相同的结果,尽管你需要指定父分支: git diff $(git merge-base origin/master HEAD)..HEAD - yellowblood
准确地说,:/<text>HEAD^{/<text>}不等价。第一种形式在任何引用可达的提交中搜索,包括HEAD。第二种形式是在指定引用(在本例中为HEAD)可达的提交中搜索。但是在问题的范围内,这看起来是可以接受的。 - Serge Roussak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接