Git冲突解决指南:三种实用解决方案详解
Git冲突解决指南:三种实用解决方案详解
在使用Git进行版本控制时,难免会遇到冲突问题。本文将详细介绍三种解决冲突的方法:在UI中解决冲突、还原到以前的状态、在Git中解决冲突。每种方法都有详细的步骤说明,帮助你快速有效地处理Git冲突。
冲突解决
当对工作区和远程Git存储库中的同一项进行更改时,会发生冲突。出现冲突时,Git状态显示“冲突”和“提交”已禁用。
如果在出现冲突时选择“更新”,会显示一条消息,通知需要先解决冲突,然后才能进行更新。
可通过3种方法来解决冲突:
在UI中解决冲突
选择“全部更新”,查看存在冲突的所有项的列表。然后,可选择要为每个项保留的版本。对于每个冲突项,可以选择接受来自Git存储库的传入更改,或保留工作区中的当前版本。
- 选择“接受传入更改”,覆盖工作区中的更改。如果导入成功,工作区更改将丢失,并且Git状态更改为“已同步”。
- 选择“保留当前内容”,保留工作区中当前存在的版本。更新完成后,Git状态变为“未提交更改”,因为工作区中的更改尚未提交到分支。
还原到以前的状态
可以将整个工作区或Git分支还原到上次同步的状态。如果将Git分支还原到以前的提交,则仍可以看到对未同步分支所做的更改。如果还原工作区,则会丢失自上次提交以来对工作区所做的所有更改。
要还原到以前的同步状态,请执行以下操作之一:
- 使用撤消命令将工作区中存在冲突的项返回到其上次同步状态。
- 使用Azure DevOps中的
git revert
命令还原到Git中的上次同步状态。
还可以通过断开工作区连接并重新连接来解决冲突。在重新连接时,请选择要同步的方向。但请注意,重新连接时,这将覆盖工作区或分支中的所有项,而不仅仅是冲突项。它不会将工作区或分支返回到上次同步状态。相反,它会用其他位置的内容覆盖一个位置的所有内容。
在Git中解决冲突
如果不确定进行了哪些更改、要选择哪个版本,并且不想还原到以前的状态,可尝试通过创建新分支、解决该分支中的冲突,并将其与当前分支同步来解决Git存储库中的冲突。
注意:只有工作区管理员可以将工作区重新连接到新分支。
在“源代码管理”窗格中,使用屏幕底部显示的上次同步分支ID检查新分支
此步骤使用上次同步的Git状态从冲突分支创建一个新分支,然后再进行与更改冲突的更改。可在“源代码管理”面板中看到所做的更改,但Git分支中没有任何需要更新的内容。“签出分支”会保留当前工作区状态,因此更改分支时会保留未提交的更改。将更改提交到新分支。现在,此新分支包含了你对连接到Git分支早期版本的项目所做的更改,这些更改不会与你的更改冲突。
在Git中,解决原始分支和新分支之间的冲突。
在Git中,将新分支合并到原始分支
在Fabric中,将工作区切换回原始分支。
本文原文来自微软官方文档