解决 Git 合并冲突的方法
一、介绍
在团队协作中,成员们可能会并行修改相同的文件。当一个成员将更改合并回主分支或其他分支时,可能会出现冲突。这种冲突可能需要合并者手动解决。特别是当一个用户进行合并时,可能不希望使用其他人的更改,只希望保留自己所做的修改。本文将探讨如何解决这一问题,并提供在 Visual Studio 环境中实现该解决方案的步骤。
二、设置项目和分支
-
创建项目并添加文件
创建一个包含
index.txt文件的项目。
在文件中写入内容:“Base”,并保存到
master分支。
-
基于
master分支创建新分支-
创建分支 A,在index.txt文件中添加“+A”。
-
创建分支 B,在index.txt文件中添加“+B”。
-
创建分支 C,在index.txt文件中添加“+C”。
-
三、问题:合并冲突
-
将分支
A合并到分支B
合并时发生冲突:


四、解决方案
根据 Git 文档的建议,解决冲突需要以下两个步骤:
-
在合并分支中添加 .gitattributes文件 -
配置环境
1、在合并分支中添加 .gitattributes 文件
在合并分支中创建 .gitattributes 文件,内容如下:
index.txt merge=ours
这个文件指定了在合并 index.txt 文件时使用 merge=ours 策略。我们将 .gitattributes 文件放置在分支 C 中。
2、配置环境
可以在本地或全局配置 Git 以使用 merge=ours 策略。
-
本地配置
打开 Git 配置文件
config,并运行以下命令:git config merge.ours.driver true
打开文件:config

运行命令:

这将本地设置为使用
merge=ours驱动程序。
-
全局配置
运行以下命令来全局配置 Git:
git config --global merge.ours.driver true这将更改 Git 的全局设置,之前的配置文件位置如下:

运行后:git config --global merge.ours.driver true

一般来说,Git 配置文件位于

或者

五、演示
-
将
.gitattributes文件放置在分支C中
-
将分支
B合并到分支C在合并过程中,仍然会出现冲突警告:
There is still a conflict warning:
然而,合并完成后,
index.txt文件在分支C中保持不变,与之前相同。
通过以上步骤,您可以有效地处理 Git 合并冲突,并保持特定文件在合并过程中的不变。