Skip to main content

解决GitHub上的合并冲突

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

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

如果站点管理员对仓库之间的拉取请求禁用了合并冲突编辑器,则无法在 GitHub Enterprise Server 上使用冲突编辑器,并且必须在命令行上解决合并冲突。 例如,如果禁用合并冲突编辑器,则无法在分支与上游仓库之间的合并请求中使用它。

警告

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

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

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

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

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

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

    注意

    如果“解决冲突”**** 按钮处于禁用状态,你的拉取请求合并冲突过于复杂,无法在 GitHub 上解决 或者站点管理员已禁用存储库之间拉取请求的冲突编辑器。 必须使用备用 Git 客户端或在命令行上使用 Git 解决合并冲突。 有关详细信息,请参阅“使用命令行解决合并冲突”。

数据reusables.pull_requests.decide-how-to-resolve-competing-line-change-merge-conflict %}

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

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

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

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

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

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

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

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

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

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

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

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

其他阅读材料

  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)