Git:查找(将来)正在进行的合并的父项

时间:2019-07-02 10:10:14

标签: git merge parent git-merge mintty

我有一个正在进行的合并,但尚未完成-仓库仍处于“ MERGING”状态,MERGE_HEAD文件存在。我现在不知道我要合并的是哪个修订版本-好吧,通过git log我知道我所在的修订版本和分支的名称,所以我知道该父版本-但这是另一个(未来)我想念的父母。

当然,控制台中的命令历史还不够长,无法包含我曾经使用过的git merge命令-它早已被遗忘了。

git status仅告诉我:“所有冲突均已解决,但您仍在合并中。”

3 个答案:

答案 0 :(得分:1)

您可以使用

git log --merge -p

显示所有合并分支(source)不常见的提交差异。您可以看到那里的分支所指向的最后一次提交的提交SHA。

编辑:您还可以使用来打印要合并的提交标识符 cat .git/MERGE_HEAD

答案 1 :(得分:1)

MERGE_HEAD文件中包含答案。实际上,它只包含那个。

如果有任何git命令可以从控制台显示其内容,我很高兴知道并会分发点。

答案 2 :(得分:-1)

摆脱状态“所有冲突已解决,但您仍在合并”。有git merge --continue

要中止当前合并(并返回您称为(未来的)父对象),可以使用git merge --abort。这总是一个不错的选择,因为您可以重新开始

要查看合并之前使用git reflog的仓库中发生了什么,每一行都是git为您采取的步骤:

Haass@LAPTOP-ETDGT1PT MINGW64 /c/devel/inventory (master)
$ git reflog
398e725 (HEAD -> master, upstream/master) HEAD@{0}: reset: moving to upstream/master
8700bfd (origin/master, origin/HEAD) HEAD@{1}: checkout: moving from 398e72552f3300d0389426b17feae6543305156f to master
398e725 (HEAD -> master, upstream/master) HEAD@{2}: checkout: moving from master to upstream/master
8700bfd (origin/master, origin/HEAD) HEAD@{3}: rebase finished: returning to refs/heads/master
8700bfd (origin/master, origin/HEAD) HEAD@{4}: rebase: checkout refs/remotes/origin/master
be73d62 HEAD@{5}: reset: moving to HEAD

看起来像这样。合并之前总会有一个结帐,因此从上到下查找第一个结帐。第一列是可用于签出的git哈希。

在这种情况下,我喜欢git tag进行操作,以便每当我在某些git操作中迷路时都可以返回到任何中间步骤