Skip to main content

创建拉取请求

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

谁可以使用此功能?

Anyone with read access to a repository can create a pull request.

Platform navigation

如果要为拉取请求创建新分支,又没有仓库的写入权限,可以先对仓库复刻。 有关详细信息,请参阅“从复刻创建拉取请求”和“关于分叉”。

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

Note

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

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

更改分支范围和目标仓库

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

如果默认父仓库不正确,您可以使用下拉列表更改父仓库和分支, 还可以使用下拉列表交换头部分支和基本分支,以确定引用点之间的差异。 这里的引用必须是 GitHub 仓库中的分支名称。

拉取请求的屏幕截图。 用于编辑比较分支的下拉列表已展开。

考虑分支时,请记住,“基础分支”是应应用更改的位置,“头部分支”包含要应用的内容。

更改基本仓库时,也会更改关于拉取请求的通知。 每个对基本仓库有推送权限的人都会收到电子邮件通知,他们下次登录时会在仪表板上看到新的拉取请求。

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

Tip

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

创建拉取请求

  1. 在 GitHub 上,导航到存储库的主页面。

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

    存储库主页上分支下拉菜单的屏幕截图。

  3. 在文件列表上方的黄色横幅中,单击“比较和拉取请求”****,为关联的分支创建拉取请求。

    文件列表上方横幅的屏幕截图。

  4. 使用基础分支下拉菜单选择要向其合并更改的分支,然后使用比较分支下拉菜单选择进行了更改的主题分支 。

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

  6. 要创建可供审查的拉取请求,请单击“创建拉取请求”。 若要创建草稿拉取请求,请使用下拉列表并选择“创建草稿拉取请求”,然后单击“草稿拉取请求” 。 如果你是组织的成员,则可能需要从组织所有者请求对草稿拉取请求的访问权限。 请参阅“关于拉取请求”。

Tip

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

审查拉取请求后,可以将其合并到存储库中

Note

若要详细了解 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 将打开一个预览对话框,其中显示当前分支与基础分支之间的更改差异。

    “无本地更改”视图的屏幕截图。 标有“预览拉取请求”的按钮以橙色边框突出显示。

    “无本地更改”视图的屏幕截图。 标有“预览拉取请求”的按钮以橙色边框突出显示。

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

  2. 确认“基础:”下拉菜单中的分支是要合并更改的分支。

    “打开拉取请求”对话框窗口的屏幕截图。 带有下拉图标(标有“基础: 开发”)的按钮以橙色框出。

    GitHub Desktop 会提示你当前分支是否可以自动合并到基础分支中。

    “打开拉取请求”对话框窗口的屏幕截图。 显示“无法自动合并”的状态标签以橙色边框突出显示。

  3. 单击“创建拉取请求”。 GitHub Desktop 会将您的默认浏览器打开至 GitHub。

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

  5. 要创建可供审查的拉取请求,请单击“创建拉取请求”。 若要创建草稿拉取请求,请使用下拉列表并选择“创建草稿拉取请求”,然后单击“草稿拉取请求” 。 如果你是组织的成员,则可能需要从组织所有者请求对草稿拉取请求的访问权限。 请参阅“关于拉取请求”。

  1. 提交存储库本地副本的更改后,单击“创建拉取请求”图标。
    “源代码管理”边栏顶部的屏幕截图。 拉取请求图标以深橙色边框突出显示。
  2. 检查作为合并来源的本地分支和仓库以及作为合并目标的远程分支和仓库是否正确。 然后为拉取请求提供标题和描述。
    “GitHub 拉取请求”边栏的屏幕截图,其中包含用于创建拉取请求的表单,包括“标题”和“说明”字段。
  3. 单击“创建”。

有关在 GitHub Codespaces 中创建拉取请求的详细信息,请参阅“将 GitHub Codespaces 用于拉取请求”。

对拉取请求中的文件进行更改

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

还可以对 GitHub 网站上的文件进行更改。

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

  2. 在拉取请求上,单击 “文件已更改”。

    拉取请求的选项卡的屏幕截图。 “已更改的文件”选项卡以深橙色突出显示。

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

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

    该屏幕截图显示了“文件已更改”选项卡上的文件上方的选项。“显示选项”按钮以橙色矩形突出显示。

  5. 在菜单上,单击“编辑文件”****。

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

如果属于 Copilot Workspace 的公共预览版的一部分,单击“文件已更改”选项卡上的文件上的“编辑”将在 GitHub 上的 Copilot Workspace 中打开该文件****。 在 Copilot Workspace 中,你仍可对该文件进行更改,也可以对存储库中的其他文件进行更改,将所做的更改分组到单个提交中,并利用 Copilot 代码完成。

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

延伸阅读