跳至主要内容

在 GitHub 上解决合并冲突

您可以使用冲突编辑器在 GitHub 上解决涉及竞争行更改的简单合并冲突。

您只能在 GitHub 上解决由竞争行更改引起的合并冲突,例如当人们在 Git 存储库中不同分支上对同一文件的同一行进行不同的更改时。对于所有其他类型的合并冲突,您必须在命令行上本地解决冲突。有关更多信息,请参阅“使用命令行解决合并冲突”。

警告: 当您在 GitHub 上解决合并冲突时,您的拉取请求的整个 基础分支 将合并到 头部分支。请确保您确实要提交到此分支。如果头部分支是您的仓库的默认分支,您将可以选择创建一个新的分支作为拉取请求的头部分支。如果头部分支受保护,您将无法将您的冲突解决合并到其中,因此系统会提示您创建一个新的头部分支。有关更多信息,请参阅 "关于受保护的分支。"。

  1. 在您的仓库名称下,点击 拉取请求.

    Screenshot of the main page of a repository. In the horizontal navigation bar, a tab, labeled "Pull requests," is outlined in dark orange.

  2. 在“拉取请求”列表中,点击您要解决的合并冲突的拉取请求。

  3. 在您的拉取请求底部附近,点击解决冲突

    Screenshot of a warning that a pull request has a merge conflict. The "Resolve merge conflicts" button is outlined in dark orange.

    注意: 如果解决冲突按钮被禁用,则您的拉取请求的合并冲突过于复杂,无法在 GitHub 上解决。您必须使用其他 Git 客户端或使用命令行上的 Git 来解决合并冲突。有关更多信息,请参阅 "使用命令行解决合并冲突。"。

  4. 决定您是想保留仅您分支的更改,保留仅其他分支的更改,还是进行全新的更改,这可能会包含来自两个分支的更改。删除冲突标记 <<<<<<=======>>>>>>> 并进行您想要在最终合并中进行的更改。

  5. 如果您在文件中有多个合并冲突,请向下滚动到下一组冲突标记,并重复步骤四和五以解决您的合并冲突。

  6. 解决完文件中的所有冲突后,点击标记为已解决

    Screenshot of the editor to resolve a merge conflict in a pull request. The "Mark as resolved" button is outlined in dark orange.

  7. 如果您有多个包含冲突的文件,请选择您要编辑的下一个文件,该文件位于页面左侧的“冲突文件”下,并重复步骤四到七,直到您解决完所有拉取请求的合并冲突。

  8. 解决完所有合并冲突后,点击提交合并。这会将整个基础分支合并到您的头部分支。

    Screenshot of the editor to resolve a merge conflict in a pull request. The "Commit merge" button is outlined in dark orange.

  9. 如果出现提示,请查看您要提交的分支。

    如果 HEAD 分支是仓库的默认分支,您可以选择用您为解决冲突所做的更改来更新此分支,或者创建一个新分支并将其用作拉取请求的 HEAD 分支。

    如果您选择创建新分支,请输入分支名称。

    如果拉取请求的 HEAD 分支受保护,您必须创建一个新分支。您将无法选择更新受保护的分支。

    点击 **创建分支并更新我的拉取请求** 或 **我理解,继续更新 BRANCH**。按钮文本对应于您正在执行的操作。

  10. 要合并您的拉取请求,请点击 **合并拉取请求**。有关其他拉取请求合并选项的更多信息,请参阅 "合并拉取请求"。

进一步阅读