创建并合并 GitHub 拉取请求
拉取请求用于开源项目或某些企业工作流中,以管理贡献者的更改,并在合并此类更改之前发起代码审查。
通过创建拉取请求,您可以告知他人您希望推送到原始仓库的更改,以便该仓库的维护者审查并讨论您的更改,并将其集成到基分支中。
作为拉取请求作者,您可以直接在 PyCharm 中管理拉取请求的生命周期:
创建 拉取请求。
查看拉取请求的详细信息 ,在 拉取请求 工具窗口中。
处理收到的反馈和评论 ,来自您的审查者。
合并或关闭 您的拉取请求。
创建拉取请求
在主菜单中,转到 。 拉取请求 工具窗口将打开,并显示一个拉取请求草稿。

或者,打开 拉取请求 工具窗口,然后点击右上角的
创建拉取请求…。
左侧的仓库是将接收更新的 基 仓库。
点击其名称并选择要应用更改的分支。

右侧的仓库是 源 仓库,其中包含将添加到基仓库的更改。
点击其名称并选择包含您要应用的更改的分支。

如果您的项目使用 多个远程存储库 ,您也可以在此弹出窗口中更改源存储库。
双击任意文件的名称以打开 Diff 视图并审查您将要提交的更改。
在 标题 字段中指定拉取请求的名称,还可以提供要通过此请求应用的更改说明。
您还可以添加审查者、将拉取请求分配给某人或为其添加标签。
单击 创建拉取请求。
如果您尚未准备好提交拉取请求,可以将其保存为草稿。
点击位于 创建拉取请求 按钮旁边的
。
在打开的菜单中,选择 创建草稿拉取请求。
您的拉取请求将在 GitHub 仓库中以草稿形式显示。 稍后,您可以在主菜单中选择 返回此请求。
如果您有一个 pull_request_template.md 文件, PyCharm 会将模板说明添加到您的拉取请求中。 有关模板的更多信息,请参阅 GitHub 文档。
查看拉取请求的详细信息
创建拉取请求后,您始终可以在 拉取请求 工具窗口中找到该拉取请求。
要打开 拉取请求 工具窗口,请在主菜单中选择 。

在 拉取请求 工具窗口中,您可以:
筛选请求 ,按状态、作者、标签、受理人和审查状态。
排序 拉取请求,依据其活动状态:最新、最旧、评论最多或最少、最近更新或最久未更新。
跳转到 GitHub 上的拉取请求 :选择一个拉取请求,然后在上下文菜单中选择 在浏览器中查看拉取请求。
在列表中双击某个拉取请求时,您将看到概览和时间线选项卡。

在此视图中,您可以:
查看时间线 ,以跟踪所选拉取请求的进展。
选择特定提交 以筛选更改列表。
创建本地分支 (基于传入更改):打开拉取请求,点击包含传入更改的分支,然后在上下文菜单中选择 检出 'branch name'。
要了解更多选项,请参阅 审查拉取请求。
处理收到的反馈
当您将拉取请求提交以供审查时,可能会针对您的更改收到评论或建议。 您可以直接在 PyCharm 中查看并应用这些评论或建议。
在主菜单中,转到 。
在拉取请求列表中,选择您要处理的请求并双击它。
PyCharm 会打开所选拉取请求的概览。

点击包含传入更改的分支,并在上下文菜单中选择 检出 'branch name'。

通过检出该分支,您可以获得完整上下文,以测试审查者建议的更改并检查其工作方式。
成功检出后,PyCharm 将启动 审查模式。 这意味着,您不仅可以在 Diff 选项卡(Ctrl+D )中看到高亮的更改和评论,还可以直接在编辑器(F4 )中查看。
选择您要调查的文件,在其上点击右键,并在上下文菜单中选择 跳转到源代码 F4。
在打开的文件中,装订区域中的粉色标记表示您所做的更改以及审查者留下的评论。
您可以解决评论、回复评论,或留下您的反应。

可在顶部工具栏中使用
/
,或按下 Ctrl+Alt+Up/Ctrl+Alt+Down 在评论之间导航。
如果评审者留下了建议,您将看到您的代码与建议代码之间的差异,并且可以选择 在本地应用 (将补丁应用到工作副本) 或 提交 (打开提交消息弹出窗口)。

完成对该拉取请求的处理后,您可以重新请求审查、合并该拉取请求或将其关闭。

合并或关闭拉取请求
如果您对该仓库具有推送访问权限,则在工作完成后可以合并您的拉取请求。
在主菜单中,转到 。
在拉取请求列表中,选择您要处理的请求并双击它。
在概览底部,有一个带有合并选项的按钮,这些选项会根据审查流程所处阶段以及您的推送访问权限而有所不同。

如果您在审查后已批准更新,可以点击 合并 合并该拉取请求。
如需更多合并选项,请点击
,然后选择 压缩并合并 以在合并前将包含您更改的提交压缩为一个提交,或选择 变基 以将拉取请求分支中的提交变基并添加到基准分支。
点击
更多 ,若您需要对此拉取请求的其他意见,请选择 请求评审 ;若不想合并,请选择 关闭拉取请求。
如果您准备在不提交审查的情况下合并该拉取请求,请在拉取请求概览中点击
,并选择 合并、 压缩并合并 或 变基。

当拉取请求被合并后,您可以在包含该拉取请求时间线的标签页中删除已合并的分支。
如有需要,您可以使用删除后在同一时间线视图中出现的浏览器链接恢复已删除的分支。