Git合并而无需远程分支

时间:2019-11-01 13:35:03

标签: git git-merge

从分支A到分支B进行GIT合并后,我通常通过将(合并的)本地分支与(未合并的)远程分支进行比较来区分合并:

git checkout mybranch
git pull mybranch
<do merge>
git difftool --dir-diff origin/mybranch mybranch

这很好。但是,如果我有一个没有远程分支的本地分支,则无法执行此操作。

在这种情况下,最好的比较方法是什么?

2 个答案:

答案 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^语法更直接,但避免了与您要针对的多父级合并的哪个父对象产生任何歧义。