跳至主要内容

创建拉取请求

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

谁可以使用此功能?

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

平台导航

如果要为拉取请求创建新分支,并且没有对存储库的写入权限,则可以先派生存储库。有关更多信息,请参阅“从 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标志。

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 代码补全功能。

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

进一步阅读