跳至主要内容

创建拉取请求

创建拉取请求以提出和协作更改存储库。这些更改是在一个 *分支* 中提出的,这确保了默认分支仅包含已完成和批准的工作。

谁可以使用此功能?

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

平台导航

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

您可以在创建拉取请求时指定要将更改合并到的分支。拉取请求只能在两个不同的分支之间打开。

注意

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

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

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

默认情况下,拉取请求基于父存储库的默认分支。有关更多信息,请参阅“关于分支”。

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

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

在考虑分支时,请记住 *基分支* 是 **应用** 更改的位置,*头分支* 包含您希望 **应用** 的内容。

更改基准仓库时,也会更改拉取请求的通知。每个可以向基准仓库推送内容的用户在下一次登录时,都会收到电子邮件通知并在其仪表板上看到新的拉取请求。

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

提示

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

创建拉取请求

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

  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 浏览器中创建拉取请求,请使用--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 进行拉取请求”。

更改拉取请求中的文件

打开拉取请求后,您可以通过向头部分支添加新的提交来继续更改文件。

您也可以在 GitHub 网站上更改文件。

  1. 在 GitHub 上,导航到仓库中的拉取请求。

  2. 在拉取请求中,点击 已更改的文件.

    Screenshot of the tabs for a pull request. The "Files changed" tab is outlined in dark orange.

  3. 向下滚动到您要更改的文件。

  4. 在要更改的文件上方,点击.

    Screenshot of the options above a file on the "File changed" tab. The "Show options" button is highlighted with an orange rectangle.

  5. 在菜单中,点击“编辑文件”

  6. 在编辑器中进行更改,并在提交更改时,选择直接提交回头部分支。

如果您是 Copilot Workspace 公共预览版的一部分,点击“已更改的文件”选项卡上的文件的“编辑”将打开 GitHub 上 Copilot Workspace 中的文件。在 Copilot Workspace 中,您仍然可以更改文件,还可以更改仓库中的其他文件,将更改组合到单个提交中,并利用 Copilot 代码补全功能。

您可以通过选择编辑单个文件或点击拉取请求右侧边栏中的“在 Workspace 中打开”来访问 Copilot Workspace。有关 Copilot Workspace 和加入公共预览版的更多信息,请参阅“使用 Copilot 帮助您处理拉取请求”。

进一步阅读