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