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 linter 忽略一行?