跳至主要内容

创建请求合并

创建一个合并请求以提出并协作处理对存储库的更改。这些更改在分支中提出,这可确保默认分支仅包含已完成且已批准的工作。

哪些人可以使用此功能?

任何具有存储库读取权限的人都可以创建合并请求。

平台导航

如果您想为合并请求创建一个新分支,并且没有存储库的写入权限,则可以先 fork 该存储库。有关更多信息,请参阅“从 fork 创建合并请求”和“关于 fork”。

当您创建合并请求时,您可以指定希望将更改合并到哪个分支中。合并请求只能在两个不同的分支之间打开。

注意:要在公共存储库中打开合并请求,您必须具有对头分支或源分支的写入权限,或者对于组织拥有的存储库,您必须是拥有该存储库的组织的成员才能打开合并请求。

您可以将合并请求链接到某个问题,以表明正在进行修复,并在有人合并合并请求时自动关闭该问题。有关更多信息,请参阅“将合并请求链接到某个问题”。

更改分支范围和目标存储库

默认情况下,拉取请求基于父仓库的默认分支。有关详细信息,请参阅“关于分支”。

如果默认父仓库不正确,您可以使用下拉列表更改父仓库和分支。您还可以使用下拉列表交换头分支和基本分支,以便在参考点之间建立差异。此处引用必须是 GitHub 仓库中的分支名称。

Screenshot of a pull request. The dropdown to edit the compare branch is expanded.

在考虑分支时,请记住基本分支应用更改的地方,头分支包含您希望应用的内容。

更改基本仓库时,您还更改拉取请求的通知。下次登录时,所有可以推送至基本仓库的人员都将收到电子邮件通知,并在其仪表板中看到新的拉取请求。

更改分支范围中的任何信息时,提交和已更改文件预览区域将更新以显示您的新范围。

提示:

  • 使用比较视图,您可以在任何时间范围内设置比较。有关详细信息,请参阅“比较提交”。
  • 项目维护者可以为仓库添加拉取请求模板。模板包括拉取请求正文中信息的提示。有关详细信息,请参阅“关于问题和拉取请求模板”。

创建拉取请求

  1. 在 GitHub.com 上,导航至仓库的主页。

  2. 在“分支”菜单中,选择包含您提交的分支。

    Screenshot of the branch dropdown menu on the main page of a repository.

  3. 在文件列表上方,在黄色横幅中,单击比较和拉取请求以针对关联分支创建拉取请求。

    Screenshot of the banner above the list of files.

  4. 使用基本分支下拉菜单选择您希望将更改合并到的分支,然后使用比较分支下拉菜单选择您在其中进行更改的主题分支。

  5. 为您的拉取请求键入标题和说明。

  6. 要创建可供审阅的拉取请求,请单击创建拉取请求。要创建草稿拉取请求,请使用下拉菜单并选择创建草稿拉取请求,然后单击草稿拉取请求。有关草稿拉取请求的详细信息,请参阅“关于拉取请求”。

提示:创建拉取请求后,您可以要求特定人员审阅您建议的更改。有关详细信息,请参阅“请求拉取请求审阅”。

在你的拉取请求经过审查之后,它可以合并到存储库

如需了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。

若要创建拉取请求,请使用 gh pr create 子命令。

gh pr create

若要将拉取请求分配给个人,请使用 --assignee-a 标志。你可以使用 @me 将拉取请求自指派给自己。

gh pr create --assignee "@octocat"

若要指定要将拉取请求合并到的分支,请使用 --base-B 标志。若要指定包含拉取请求提交的分支,请使用 --head-H 标志。

gh pr create --base my-base-branch --head my-changed-branch

若要为新的拉取请求包含标题和正文,请使用 --title--body 标志。

gh pr create --title "The bug is fixed" --body "Everything works again"

若要将拉取请求标记为草稿,请使用 --draft 标志。

gh pr create --draft

若要向新的拉取请求添加标签或里程碑,请使用 --label--milestone 标志。

gh pr create --label "bug,help wanted" --milestone octocat-milestone

若要将新的拉取请求添加到特定项目,请使用 --project 标志。

gh pr create --project octocat-project

若要将个人或团队指定为审阅者,请使用 --reviewer 标志。

gh pr create --reviewer monalisa,hubot  --reviewer myorg/team-name

若要在你的默认网络浏览器中创建拉取请求,请使用 --web 标志。

gh pr create --web
  1. 单击预览拉取请求。GitHub Desktop 将打开一个预览对话框,显示当前分支和基础分支之间的更改差异。

    Screenshot of the "No local changes" view. A button, labeled "Preview Pull Request", is highlighted with an orange outline.

    Screenshot of the "No local changes" view. A button, labeled "Preview Pull Request", is highlighted with an orange outline.

    或者,若要直接转到 GitHub 以创建拉取请求,请选择下拉图标并单击创建拉取请求

  2. 确认基础:下拉菜单中的分支是你想要将更改合并到的分支。

    Screenshot of the "Open a Pull Request" dialog window. A button with a dropdown icon, labeled "base: development", is outlined in orange.

    GitHub Desktop 将告知你当前分支是否可以自动合并到基础分支。

    Screenshot of the "Open a Pull Request" dialog window. A status label stating "Can't automatically merge" is highlighted with an orange outline.

  3. 单击创建拉取请求。GitHub Desktop 将打开你的默认浏览器,带你转到 GitHub。

  4. 为您的拉取请求键入标题和说明。

  5. 要创建可供审阅的拉取请求,请单击创建拉取请求。要创建草稿拉取请求,请使用下拉菜单并选择创建草稿拉取请求,然后单击草稿拉取请求。有关草稿拉取请求的详细信息,请参阅“关于拉取请求”。

  1. 在你将更改提交到存储库的本地副本后,单击创建拉取请求图标。
    Screenshot of the top of the "Source Control" side bar. The pull request icon is highlighted with a dark orange outline.
  2. 检查你从中合并的本地分支和存储库,以及你合并到的远程分支和存储库是否正确。然后为拉取请求提供标题和描述。
    Screenshot of the "GitHub Pull Request" side bar with a form for creating a pull request, including "Title" and "Description" fields.
  3. 单击创建

有关在 GitHub Codespaces 中创建拉取请求的更多信息,请参阅“使用 GitHub Codespaces 进行拉取请求”。

延伸阅读