【问题标题】:Resolved git merge conflict in VS Code, but still says unresolved解决了 VS Code 中的 git 合并冲突,但仍然显示未解决
【发布时间】:2018-03-11 16:49:04
【问题描述】:

所以我有一个开发分支和主题分支。我在 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 代码方面缺少什么?

【问题讨论】:

  • 你在解决冲突后有git add <file>吗?
  • 这就是我想要做的,git add <file> 和暂存文件不一样吗?
  • 确保文件中没有冲突标记。
  • 打开文件并搜索该字符串。
  • 这是 VSCode 1.16.0 版中的一个未解决问题 github.com/Microsoft/vscode/issues/33983

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


【解决方案1】:

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

在您的情况下,您已经解决了文件中的冲突(我的意思是 vs 代码),但它没有更新到 git。所以在添加 Accept IncomingAccept Current 之后你必须执行以下步骤,

  1. git 添加<conflicts resolved files>
  2. git commit -m "merge conflict resolved message"
  3. git 推送

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这正是我的情况。谢谢!
    【解决方案3】:

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

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

    这将导致暂存文件。如果您单击此按钮并且该文件中存在未解决的冲突,您将收到以下消息:

    您确定要暂存合并冲突吗?

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

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

    注意

    我相信这个错误已在最新版本的 VSCode 中得到修复。

    【讨论】:

    • 我在源代码控制面板中找不到 MERGE CHANGES 部分!我错过了什么吗?
    • @ngCoder 否,只有当您有冲突时才会显示该部分。
    • 是的,我明白了,但我确实有冲突,因为我的拉取失败,仍然没有这部分的迹象。缺少某些配置?
    • 这可以通过以下命令使用 cmd git remote update git merge origin/Vishal-Develop -X theirs git commit -m commit -m "New release" git push --recurse-submodules=check --progress "origin" refs/heads/Vishal-Master 请使用相应的分支名称来完成
    • 我的 VSCode 不允许我单击带有“冲突”的 + 按钮,但 git add <file> 工作得很好。
    猜你喜欢
    • 2015-10-15
    • 2018-08-04
    • 2016-11-08
    • 1970-01-01
    • 2018-04-19
    • 2017-05-10
    • 2012-03-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多