从分支A到分支B进行GIT合并后,我通常通过将(合并的)本地分支与(未合并的)远程分支进行比较来区分合并:
git checkout mybranch
git pull mybranch
<do merge>
git difftool --dir-diff origin/mybranch mybranch
这很好。但是,如果我有一个没有远程分支的本地分支,则无法执行此操作。
在这种情况下,最好的比较方法是什么?
答案 0 :(得分:2)
换句话说:您想将合并之前的最后一次提交与当前提交进行比较。
git difftool -d HEAD^..
^
指的是合并提交的第一父级,在这种情况下为HEAD
(^
是^1
的缩写)。 ..
用于指定范围,如果任一侧为空,则Git将使用HEAD
,因此上述范围等效于HEAD^..HEAD
。
答案 1 :(得分:2)
除了alfunx的答案外,您还可以使用reflog命名方案来获取HEAD的先前版本(即,合并之前HEAD以前是什么):
git difftool -d HEAD@{1}..HEAD
您可以检查git reflog
确认与期望的提交匹配。它比HEAD^
语法更直接,但避免了与您要针对的多父级合并的哪个父对象产生任何歧义。