6

我花了很长时间来编排我的第一个主要分支并合并。发生的事情是我有一个名为“main”的主分支,以及一个从“main”创建的名为“branch2”的新分支。我在几周内对几个文件中的“branch2”进行了大量更改,并创建了一些新文件。在此期间,我还对“主要”进行了一些小改动。当时间到了合并时,我检查了'main'并调用了git merge branch2. 毫不奇怪,它告诉我在我的一个文件中需要解决冲突。所以我过去常常git mergetool打开我选择的差异查看器 meld 来解决差异。调和这些差异后,我git merge branch2再次调用,合并成功。

问题是它实际上并没有成功合并。一些元素正确合并,但“branch2”中的一些变化从未发生过,我不知道为什么。我试过打电话git merge branch2,但现在它只是说“一切都是最新的”。这显然是不对的,因为如果你git checkout branch2,那么你可以看到不在'main'中的变化。

知道可能发生了什么吗?为什么 git 在没有正确合并时声明“所有内容都是最新的”?有什么办法可以强制 git 再次尝试合并?

4

1 回答 1

6

你做了一个邪恶的合并。跑去gitk --all看看怎么回事。你第二次打电话时出错git merge了。解决冲突后,您需要运行git commit,而不是合并。

但是 git 现在认为您的branch2已合并到main. 因此,您需要删除该合并提交。使用 gitk 获取合并前的最后一次提交的 sha 并git reset --hard **SHA**在主分支上运行以将其重置回该阶段。然后再次进行合并。

于 2013-06-04T19:38:49.877 回答