【发布时间】:2018-10-05 08:03:05
【问题描述】:
在 Visual Studio Code 中使用 Git 作为源代码控制提供程序每当我尝试将冲突文件与保留当前版本的远程存储库合并时都会遇到问题。
步骤如下:
- 已在远程存储库上修改了一个文件,我在 本地存储库
- 当我尝试将更改推送到服务器时,我收到(正确)错误 消息(无快进),我必须执行拉取来更新我的本地 存储库
- 拉的时候,编辑警告我文件上的冲突,给我四个 选项(接受当前更改、接受传入更改、接受两个更改、 比较更改)
- 我接受当前更改(我的本地版本)并保存文件。当我尝试 暂存更改文件未添加到分段更改部分,但它 消失。 Git 保持在“合并”状态,我什么也做不了(推 给我与第一次推送相同的错误,拉给我一个像我一样的错误 没有解决冲突;实际上在 .git 文件夹中我仍然有 MERGE_HEAD 文件)
如果我接受传入的更改,接受两个更改或向我以前的版本添加其他字符(以更改我之前尝试提交的版本)一切正常。我认为当我选择“接受当前更改”并尝试暂存合并更改时,编辑器(或 Git?)不会将文件添加到暂存更改中,因为它与之前提交的版本相同,并且不会更新 git状态,仍然卡在合并冲突中。
在合并时向先前版本添加额外字符的解决方法可以正常工作,但我需要知道这是错误还是合并时缺少一些步骤。
请不要用命令行解决方法(如 git merge --abort)回复我,我正在寻找 UI 友好的解决方案(并非我的所有队友都对命令行有信心)。提前致谢。
【问题讨论】:
-
如果您不准备使用命令行(这是使用 GIT 的最佳方式),那么我建议您使用 GIT extensions 而不是 VS 代码。 VS Code 的 git 界面充其量是笨拙的,并且隐藏了 GIT 工作方式的重要功能
-
嗨 Liam,我需要使用 VS Code,因为它与我的服务器端平台(在本例中为 Salesforce)集成(与另一个扩展)。
-
你可以使用VSCode。我的意思是不要通过 VS Code 使用 GIT。 TBH 如果你想成功地使用 GIT,你真的需要了解 GIT(我的意思是你团队中的每个人)。我建议任何“不......对命令行有信心”的人都会遇到困难。如果您发现在命令行中输入
git pull很困难,您将如何理解merge和rebase之间的区别?如果您不知道引擎盖下发生了什么,那么 UI 就没有多大用处。阅读GIT docs as a minimum。 -
我红色了 GIT 文档,我知道引擎盖下的内容,我的问题是关于 GIT 与 Visual Studio Code 的集成。我知道仅在命令行中使用 GIT 可以避免很多问题,并且可以让我完全控制 GIT 流程。说“不要在 VS Code 中使用 GIT”很容易,但这不是我的问题。我指定我想知道是否存在 VS Code 错误,或者我在合并操作期间是否遗漏了某些内容。
-
是的,这确实是一个错误报告,Matteo,UI 应该认识到需要通过提交来完成合并,而不是声明没有要提交的更改。看起来有一个开放的:github.com/Microsoft/vscode/issues/7989
标签: git visual-studio-code git-merge git-merge-conflict