我试图合并我的分支与另一个分支,有一个合并冲突。在Visual Studio Code (version 1.2.1)中,我解决了所有问题,但是当我尝试提交时,它一直给我这样的消息:

在提交更改之前,应该首先解析未合并的更改。

我试着谷歌它,但我不知道为什么它不让我提交我的更改,所有的冲突都消失了。


当前回答

您得到的错误消息是Git仍然认为您没有解决合并冲突的结果。事实上,您已经做到了,但是您需要告诉Git您已经通过将解析文件添加到索引中来做到这一点。

这样做的副作用是,您实际上可以只添加文件而不解决冲突,而Git仍然认为您已经解决了冲突。所以你应该努力确保你真的解决了冲突。您甚至可以在提交之前运行构建并测试代码。

其他回答

使用VSCode,你可以很容易地在下面的UI中找到合并冲突。

(如果没有顶部栏,请设置“编辑器”。codeLens":在User Preferences中为true)

它指示您拥有的当前更改和来自服务器的传入更改。这使得解决冲突变得很容易-只需按下<<<< HEAD上面的按钮。

如果您有多个更改,并希望一次性应用所有更改-打开命令面板(视图->命令面板)并开始输入合并-将出现多个选项,包括合并冲突:接受传入等。

经过反复试验,我发现您需要暂存有合并冲突的文件,然后才能提交合并。

您得到的错误消息是Git仍然认为您没有解决合并冲突的结果。事实上,您已经做到了,但是您需要告诉Git您已经通过将解析文件添加到索引中来做到这一点。

这样做的副作用是,您实际上可以只添加文件而不解决冲突,而Git仍然认为您已经解决了冲突。所以你应该努力确保你真的解决了冲突。您甚至可以在提交之前运行构建并测试代码。

如果有冲突:使用vs-code逐文件解决。在每个文件后单击vs-code中的“完成合并”按钮。 当没有文件时,执行命令:

git commit

(不要依赖vs-code的“提交”按钮,它会变灰,这是错误的。)

对于VSCode 1.70.2,在源代码控制面板的合并视图中,在“yours”和“their”两侧有复选框,在选中的冲突块中间的行号旁边,而不是行上方的文本按钮。