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

-
在“Pull Requests(拉取请求)”列表中,单击要合并的拉取请求。
-
向下滚动到拉取请求底部。 根据对仓库启用的合并选项,你可以:
-
单击“合并拉取请求”,将所有提交合并到基础分支。 如果未显示“合并拉取请求”选项,请单击合并下拉菜单并选择“创建合并提交”。

-
单击“合并”下拉菜单,选择“压缩并合并”选项,然后再次单击“压缩并合并”将多个提交压缩为一个提交。
-
单击合并下拉菜单,选择“变基并合并”,然后单击“变基并合并”,将提交逐个变基到基础分支。
注意
变基并合并始终会更新提交者信息,并创建新的提交 SHA。 有关更多信息,请参阅拉取请求合并概述。
-
-
如有提示,输入提交消息,或接受默认消息。
有关 squash 合并的默认提交消息的信息,请参阅 关于拉取请求合并。
注意
电子邮件选择器不适用于变基合并,因为变基合并不会创建合并提交或对将创建拉取请求的用户作为已压缩提交的作者的 Squash 合并显示。
-
单击“确认合并”“确认压缩并合并”或“确认变基并合并”。
-
(可选)删除分支。 这使得仓库中的分支列表保持整洁。
注意
若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。
要合并拉取请求,请使用 子命令。 将 替换为拉取请求的数字、URL 或主分支。
gh pr merge PULL-REQUEST
按照交互式提示完成合并。 有关可以选择的合并方法的详细信息,请参阅“AUTOTITLE”。
或者,您可以使用标志跳过交互式提示。 例如,此命令会将提交压缩为带有提交消息“我的压缩提交”的单个提交,将压缩的提交合并到基本分支,然后删除本地和远程分支。
gh pr merge 523 --squash --body "my squash commit" --delete-branch
其他阅读材料
- 自动标题
- 使用 GitHub Desktop 进行 AUTOTITLE
- 自动标题
- 自动标题