Git 通常可以自动解决分支之间的冲突并合并它们。 通常,更改位于不同行或不同文件中,因此 Git 可以在无帮助的情况下合并它们。 有时,竞争性更改需要你的帮助。 当用户对同一文件的同一行进行更改,或者当一个人编辑文件,而另一个人删除同一文件时,通常会发生合并冲突。
合并冲突阻止合并,因为 Git 无法安全地选择要保留的冲突内容版本。 必须先解决所有合并冲突,然后才能合并拉取请求 GitHub。 如果拉取请求在比较分支和基分支之间存在合并冲突,则会停用 合并拉取请求 按钮,直到冲突得到解决。
解决合并冲突
解决合并冲突意味着选择合并分支后应显示的最终内容。 正确的工具取决于冲突的类型。
- 简单的行冲突通常可以在 GitHub 上解决。 请参阅“Resolving a merge conflict on GitHub”。
- 必须在本地克隆中解决更复杂的冲突,并将其推送回拉取请求分支。 请参阅“Resolving a merge conflict using the command line”。
在命令行上,Git 会告诉你合并何时无法自动完成。 在解决冲突并提交该解决方案之前,您无法推送合并结果。
$ git merge BRANCH-NAME
> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result