> 技术文档 > 如何解决git merge冲突?_git merge 冲突解决

如何解决git merge冲突?_git merge 冲突解决

当执行 git merge 命令时,如果两个分支对同一文件的同一部分进行了不同的修改,就会产生合并冲突。下面为你详细介绍解决 git merge 冲突的步骤和方法。

1. 发现冲突

在执行 git merge 命令后,如果出现合并冲突,Git 会给出相应提示,同时在有冲突的文件中插入冲突标记。例如:

<<<<<<>>>>>> branch-name

<<<<<<< HEAD 到 ======= 之间的内容是当前分支的内容,======= 到 >>>>>>> branch-name 之间的内容是要合并分支的内容。

2. 查看冲突文件

你可以使用以下命令查看哪些文件存在冲突:

git status

该命令会列出所有包含冲突的文件,这些文件会处于 “unmerged” 状态。

3. 手动解决冲突

打开存在冲突的文件,根据实际需求编辑文件内容,去除冲突标记,并决定保留哪些修改。例如,如果你想保留当前分支的内容,可以将文件内容修改为:

这是当前分支的内容

如果你想同时保留两个分支的内容,可以将文件内容修改为:

这是当前分支的内容这是要合并分支的内容

4. 标记冲突已解决

当你完成冲突文件的编辑后,需要使用 git add 命令将修改后的文件标记为已解决冲突:

git add 

这里的  是你解决冲突的文件名称。你也可以使用 git add . 命令将所有修改后的文件一次性标记为已解决。

5. 提交合并结果

在将所有冲突文件标记为已解决后,使用 git commit 命令提交合并结果:

git commit

Git 会自动生成一个合并提交,你也可以在提交时添加自定义的提交信息:

git commit -m \"合并分支并解决冲突\"

6. 使用工具辅助解决冲突

除了手动编辑文件解决冲突外,你还可以使用一些工具来辅助解决冲突,例如:

  • 图形化工具:如 GitKraken、SourceTree 等,这些工具提供了直观的界面,方便你查看和解决冲突。
  • 命令行工具:如 git mergetool,它会调用你配置的合并工具(如 vimdiffkdiff3 等)来帮助你解决冲突。
​git mergetool

 

运行该命令后,会启动你配置的合并工具,按照工具的提示进行操作即可。

总结

解决 git merge 冲突的关键在于手动编辑冲突文件,决定保留哪些修改,然后标记冲突已解决并提交合并结果。你可以根据自己的需求选择手动编辑或使用工具辅助解决冲突。