# 什么是合并冲突？

当你尝试将另一个分支合并到当前工作分支时，你是在将另一个上下文的更改与当前工作文件结合在一起。
如果两个人修改了同一文件的相同行，或者一个人决定删除该文件，而另一个人决定修改它，Git 无法识别哪个版本是正确的。Git 会标记该文件为存在冲突 - 在解决冲突之前，你无法继续工作。

# 如何解决合并冲突？

当遇到合并冲突时，Git 会通过在文件中将问题区域包裹在“<<<<<<<< HEAD”和“>>>>>>>>>>[other branch name]”中来标记冲突。

第一个标记后的内容来自你当前的工作分支。尖括号后，Git 会告诉我们更(改来自哪个分支)。一个“=======”行将两个冲突的更改分开。
我们的任务是清理这些行：当我们完成后，文件应该看起来正是我们想要的样子。建议咨询写入冲突更改的队友，决定哪个版本应该是最终的。可能是你们其中一个的版本，也可能是两者的混合。

例如：
```
 <<<<<<< HEAD:mergetest
 This is my third line
 =======
 This is a fourth line I am adding
 >>>>>>> 4e2b407f501b68f8588aa645acafffa0224b9b78:mergetest
```

`<<<<<<<`：表示合并冲突行的开始。第一组行来自你试图合并更改的文件。  
`=======`：表示用于比较的断点。分隔用户提交的更改（上方）和来自合并的更改（下方），以便直观地看到差异。  
`>>>>>>>`：表示合并冲突行的结束。

你可以通过编辑文件来解决冲突，然后手动合并 Git 难以合并的部分。这可能意味着丢弃你的更改或别人的更改，或者两者的混合。你还需要删除文件中的 '<<<<<<<'、'=======' 和 '>>>>>>>'。


一旦解决了冲突，请使用 `git add` 命令。不要忘记运行测试，因为你需要确保已正确解决冲突。

你还可以根据所使用的 IDE 下载不同的插件，以便更轻松地解决合并冲突。


# 如何撤销合并？

如果你想撤销合并，可以使用 `git merge --abort`。
