跳至主要内容

在 GitHub 上解决合并冲突

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

您只能在 GitHub 上解决由冲突行更改引起的合并冲突,例如当不同分支的人员对同一文件的同一行进行不同修改时。对于所有其他类型的合并冲突,您必须在本地使用命令行解决冲突。欲了解更多信息,请参阅 使用命令行解决合并冲突

如果您可以访问 Copilot 云代理且已为仓库启用,您可以在合并框中点击 使用 Copilot 修复,让 Copilot 自动解决合并冲突。Copilot 将分析冲突的更改,解决冲突,并验证构建、测试和代码检查仍然通过。欲了解更多信息,请参阅 请求 GitHub Copilot 对现有拉取请求进行更改

警告

当您在 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. 在“Pull Requests”列表中,点击您想要解决合并冲突的拉取请求。

  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. 如果文件中有多个合并冲突,请向下滚动至下一个冲突标记集,并重复第 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. 如果有多个冲突文件,请在页面左侧的“冲突文件”下选择下一个要编辑的文件,并重复第 4 步到第 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. 如果出现提示,请检查您即将提交到的分支。

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

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

    如果您拉取请求的目标分支受保护,则必须创建新分支。您将没有更新受保护分支的选项。

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

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

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.