已解决的VS代码中的git合并冲突,但仍然表示尚未解决

时间:2017-09-29 18:04:25

标签: git merge visual-studio-code merge-conflict-resolution

所以我有一个开发分支和主题分支。我在Window的VS Code中使用了默认终端。在主题分支中,我做了git merge develop因为我刚刚获得了开发分支的最新信息。现在,在一个文件中存在简单的合并冲突。在VS Code中,我解决了冲突。在代码页上,您可以Accept IncomingAccept Current不再发生冲突,但当我尝试在左侧的“源代码管理”面板上暂存文件时,会显示警告弹出窗口说Are you sure you want to stage with merge conflicts?

这是正常的吗?似乎VS Code并不认为我解决了冲突,即使我刚刚做了,并且文件中没有冲突。或者有什么我错过了Git / VS代码?

3 个答案:

答案 0 :(得分:1)

这是正常现象。通常,当我们在合并的源文件和目标文件的同一行中进行更改时,就会遇到合并冲突。

在您的情况下,您已解决文件中的冲突(我的意思是对代码),但未更新为git。因此,添加 Accept Incoming Accept Current 后,您必须执行以下步骤,

  1. git add <conflicts resolved files>
  2. git commit -m“ merge conflict resolved message
  3. git push

答案 1 :(得分:0)

在VSCode中,当您在多个文件中有冲突时,它们会显示在git面板中,您可以一个一个地打开文件并解决它们。

解决文件中的冲突时,应保存文件,然后单击该文件的+按钮(如下图所示)。

Stage resolved file

这将导致暂存文件。如果单击此按钮,但该文件中有未解决的冲突,则会显示以下消息:

  

确定要合并冲突吗?

现在,如果您解决了所有文件的冲突,然后单击所有文件上方的+按钮(以暂存所有有冲突的文件)(如下图所示),它仍然会为您提供相同的消息(尽管您已经解决了所有冲突)。

stage all files

因此,我建议您单独单击每个文件的+,以确保在暂存文件之前已解决所有冲突。

注意

我相信此错误已在VSCode的最新版本中修复。

答案 2 :(得分:0)

就我而言,我意识到我已关闭 自动保存 。我知道,这太傻了。但值得检查。