Skip to main content

解决GitHub上的合并冲突

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

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

如果您可以访问 Copilot云代理 并且该功能已为存储库启用,可以在合并框中单击“用 Copilot 修复”以让 Copilot 自动解决合并冲突。 Copilot 将分析冲突的更改,解决冲突,并验证生成、测试和 Linter 是否仍然通过。 有关详细信息,请参阅“查看来自 Copilot 的输出”。

警告

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

  1. 在仓库名称下,单击 “Pull requests”****。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“拉取请求”的选项卡以深橙色标出。

  2. 在“Pull Requests(拉取请求)”列表中,单击含有您想要解决的合并冲突的拉取请求。

  3. 在拉取请求底部附近,单击“解决冲突”。

    拉取请求出现合并冲突警告的屏幕截图。 “解决合并冲突”按钮以深橙色框出。

    注意

    如果“ 解决冲突 ”按钮已停用,拉取请求的合并冲突过于复杂,无法解决, GitHub之间拉取请求的冲突编辑器。 必须使用备用 Git 客户端或在命令行上使用 Git 解决合并冲突。 有关详细信息,请参阅“使用命令行解决合并冲突”。

  4. 决定您是否想只保持分支的更改、只保持其他分支的更改,还是进行全新的更改(可能包含两个分支的更改)。 删除冲突标记 <<<<<<<=======>>>>>>>,并在最终合并中进行所需的更改。

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

  6. 解决文件中的所有冲突后,单击“标记为已解决”。

    用于解决拉取请求中合并冲突的编辑器的屏幕截图。 “标记为已解决”按钮以深橙色框出。

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

  8. 解决所有合并冲突后,单击“提交合并”。 这会将整个基本分支合并到头部分支。

    用于解决拉取请求中合并冲突的编辑器的屏幕截图。 “提交合并”按钮以深橙色框出。

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

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

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

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

    单击“创建分支并更新我的拉取请求”或“我已了解,继续更新分支”。 按钮文本对应于您正在执行的操作。

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

其他阅读材料