关于拉取请求合并
在拉取请求中,您提议将您对头部分支所做的更改合并到基础分支。 默认情况下,任何合并请求都可随时合并,除非头分支与基分支存在冲突。 但是,可能存在一些限制,关于何时可以将拉取请求合并到特定的分支。 例如,如果必需状态检查通过,你可能只能将拉取请求合并到默认分支。 仓库管理员可以使用分支保护规则向分支添加与此类似的约束。 有关详细信息,请参阅“关于受保护分支”。
可以创建规则集作为分支保护规则的替代方法。 相比分支保护规则,规则集有更多的优势,例如它有状态,可发现性更好,而且无需管理员访问权限。 还可以同时应用多个规则集。 有关详细信息,请参阅“关于规则集”。
您可以自动合并请求
如果拉取请求具有合并冲突,或者你在合并前想要测试更改,可以本地检出拉取请求,然后使用命令行进行合并。
无法合并草稿拉取请求。 有关草稿拉取请求的详细信息,请参阅 关于拉取请求。
仓库可配置为在你合并拉请求时自动删除拉取请求的头部分支。 有关详细信息,请参阅“管理分支的自动删除”。
注意
如果您在拉取请求合并后删除头部分支,GitHub 会检查将已删除分支指定为基础分支的同一仓库中的任何开放拉取请求。 GitHub 将自动更新任何此类拉取请求,将其基础分支更改为合并的拉取请求的基础分支。 有关详细信息,请参阅 关于分支。
拉取请求可通过 --no-ff 选项 进行合并,但其提交已压缩或变基的拉取请求除外,这些拉取请求通过快进选项进行合并。
通过关键词关闭问题
如果决定不想让主题分支中的更改合并到上游分支,可以关闭拉取请求而不合并。
合并拉取请求
-
在仓库名称下,单击 “Pull requests”****。

-
在“Pull Requests(拉取请求)”列表中,单击要合并的拉取请求。
-
向下滚动到拉取请求底部。 根据对仓库启用的合并选项,你可以:
-
[将所有提交合并到基分支中](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges),请单击“合并拉取请求”。 如果未显示“合并拉取请求”**** 选项,请单击合并下拉菜单并选择“创建合并提交”****。
-
单击合并下拉菜单,选择“压缩并合并”,然后单击“压缩并合并”,将多个提交压缩为一个提交 。
-
单击合并下拉菜单,选择“变基并合并”[](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#rebase-and-merge-your-pull-request-commits),然后单击“变基并合并”****,**将提交逐个变基到基础分支**。
注意
变基并合并始终会更新提交者信息,并创建新的提交 SHA。 有关详细信息,请参阅“关于拉取请求合并”。
-
-
如有提示,输入提交消息,或接受默认消息。
有关 squash 合并的默认提交消息的信息,请参阅 关于拉取请求合并。
注意
电子邮件选择器不适用于变基合并,因为变基合并不会创建合并提交或对将创建拉取请求的用户作为已压缩提交的作者的 Squash 合并显示。
-
单击“确认合并”、“确认压缩并合并” 或“确认变基并合并”****。
-
(可选)删除分支。 这使得仓库中的分支列表保持整洁。
注意
若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。
要合并拉取请求,请使用 gh pr merge 子命令。 将 pull-request 替换为拉取请求的数字、URL 或主分支。
gh pr merge PULL-REQUEST
按照交互式提示完成合并。 有关可以选择的合并方法的详细信息,请参阅“关于拉取请求合并”。
或者,您可以使用标志跳过交互式提示。 例如,此命令会将提交压缩为带有提交消息“我的压缩提交”的单个提交,将压缩的提交合并到基本分支,然后删除本地和远程分支。
gh pr merge 523 --squash --body "my squash commit" --delete-branch
其他阅读材料
-
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request) -
使用 GitHub Desktop