Visual Studio Code无法暂存Git合并更改

7
在Visual Studio Code中使用Git作为源代码控制提供程序时,当我尝试将冲突文件与远程仓库合并并保留我的当前版本时,会出现问题。
步骤如下: - 文件已在远程仓库上修改,而我在本地仓库上修改了相同的文件。 - 当我尝试将更改推送到服务器时,我会(正确地)收到错误消息(no-fast-forward),我必须执行 pull 来更新我的本地仓库。 - 在拉取时,编辑器会警告我有冲突的文件,并给出四个选项(接受当前更改、接受传入更改、接受两个更改、比较更改)。 - 我接受当前更改(我的本地版本)并保存文件。然后我尝试将更改加入提交区域(STAGED CHANGES),但文件没有添加到其中,而是消失了。 Git 仍处于“合并”状态,我无法做任何事情(push 给我与第一个 push 相同的错误,而 pull 给我一条错误,就好像我没有解决冲突;实际上,在 .git 文件夹中,我仍然有 MERGE_HEAD 文件)。
如果我选择接受传入更改、接受两个更改或添加额外字符到之前的版本(以更改我之前尝试提交的版本),那么一切都正常。我认为,当我选择“接受当前更改”并尝试合并更改时,编辑器(或 Git?)不会将文件添加到提交区域(STAGED CHANGES),因为它与之前提交的版本相同,并且不会更新 git 状态,这导致状态一直处于合并冲突中。
将之前的版本添加额外字符时的解决方法可以工作,但我需要知道这是否是一个错误,或者在合并时我是否遗漏了一些步骤。
请不要使用命令行解决方法回复我(例如 git merge --abort),我正在寻找一个界面友好的解决方案(我的团队成员不都熟悉命令行)。先谢谢了。

如果你不准备使用命令行(这是使用GIT的最佳方式),那么我建议你使用GIT扩展而不是VS Code。在最好的情况下,VS Code git界面很笨拙,并隐藏了GIT工作的重要特性。 - Liam
嗨,Liam,我需要使用VS Code,因为它与我的服务器端平台集成(与另一个扩展名一起),在这种情况下是Salesforce。 - Matteo Boscarino
你可以使用VSCode。我的意思是不要通过VS Code使用GIT。说实话,如果你想成功地使用GIT,你真的需要了解GIT(我指的是你团队中的每个人)。我建议任何“不自信使用命令行”的人都会遇到困难。如果在命令行中输入git pull很困难,那么你如何理解mergerebase之间的区别呢?如果你不知道发生了什么,那么UI也没有多大用处。至少要阅读GIT文档 - Liam
1
我阅读了GIT文档,知道它的内部机制,但我的问题是关于GIT与Visual Studio Code的集成。我知道仅使用命令行来使用GIT可以避免许多问题,并且可以完全控制GIT流程。说“不要在VS Code中使用GIT”很容易,但这不是我的问题。我想知道是否存在VS Code的错误或者在合并操作期间我是否遗漏了什么。 - Matteo Boscarino
1
是的,这确实是一个错误报告,Matteo,用户界面应该识别合并需要使用提交来完成,而不是声明没有要提交的更改。看起来已经有一个针对此问题的开放请求:https://github.com/Microsoft/vscode/issues/7989 - arkadianriver
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接