Visual Studio Code 如何解决与 git 的合并冲突?

Posted

技术标签:

【中文标题】Visual Studio Code 如何解决与 git 的合并冲突?【英文标题】:Visual Studio Code how to resolve merge conflicts with git? 【发布时间】:2016-11-08 01:32:47 【问题描述】:

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

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

我试过用谷歌搜索它,但我不知道为什么它不允许我提交我的更改,所有的冲突都消失了。

【问题讨论】:

虽然您说的是正确的,但它并不能解决问题中的问题。我明确表示我已经解决了问题中的所有合并冲突。 【参考方案1】:

使用 VSCode,您可以通过以下 UI 轻松找到合并冲突。

(如果没有顶栏,在用户偏好设置"editor.codeLens": true

它表示您当前拥有的更改以及来自服务器的传入更改。这使得解决冲突变得容易——只需按下<<<< HEAD上方的按钮。

如果您有多项更改并希望一次应用所有更改 - 打开命令面板(查看 -> 命令面板)并开始输入合并 - 将出现多个选项,包括 Merge Conflict: Accept Incoming 等。

【讨论】:

你得到最新的更新了吗!我会在每一行显示 是的,它显示在每一行,只是没有选项接受传入的更改 ***.com/questions/46125244/… 如何获得这些合并,解决 Visual Studio 代码中的冲突选项。 如何启用它,任何快捷方式?我在冲突文件中看不到该选项。【参考方案2】:

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

【讨论】:

是的,正确的。任何提交,无论是合并冲突还是您尝试推送的本地提交,都需要先暂存,然后才能推送该提交。 对于那些如果git add . 没有暂存所有文件感到困惑的人,请检查您是否在项目的根目录中。我花了一些时间才弄清楚这一点。然后git add . 暂存所有文件,然后它允许我git merge --continue 并且在解决合并冲突之后,您必须先保存冲突的文件,然后才能暂存合并的更改。 @nclark 你有没有找到一种在接受传入文件后自动保存的方法? 这解决了我的问题。必须从 VS Code 暂存 2/7 文件【参考方案3】:

对于那些很难找到“合并按钮”的人。

只有在您精确单击“合并冲突标记”时才会显示带有合并选项的小灯泡图标:

<<<<<<<

步骤(在 VS Code 1.29.x 中):

【讨论】:

我还是没看到灯泡【参考方案4】:
    点击左侧的“源代码管理”按钮。 请参阅边栏中的 MERGE CHANGES。 这些文件存在合并冲突。

【讨论】:

我以前有“接受当前更改|接受传入更改...”选项,但现在这些选项从行中消失了,知道如何再次显示此选项吗? 这在 UI 上非常简单。感谢您指出侧边栏中的 Merge Changes 部分。【参考方案5】:

您收到的错误消息是 Git 仍然认为您尚未解决合并冲突的结果。事实上,你已经有了,但你需要告诉 Git 你已经通过添加已解析的文件到索引中完成了。

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

【讨论】:

【参考方案6】:

对于 VS Code 1.38 或者如果您找不到任何“灯泡”按钮。密切注意冲突上方的灰色文本;您可以执行一系列操作。

【讨论】:

以上是关于Visual Studio Code 如何解决与 git 的合并冲突?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio code报错误怎么解决

男神鹏:Visual Studio Code 解决红色波浪线操作

如何让 Visual Studio Code linter 忽略一行?

如何在 Windows 上的 Visual Studio Code 中格式化代码

Visual Studio Code 状态栏文本颜色

Visual Studio Code更改编码格式为“UTF-8”解决中文乱码