Skip to main content

Enterprise Server 3.22 目前作为发布候选版本提供。

在本地检查拉取请求

在本地检出拉取请求,以解决合并冲突、测试变更或修改代码。

Tool navigation

注意

拉取请求作者可以授予上游仓库维护者或对上游仓库具有推送权限的人员权限,使其能够在用户拥有的派生仓库中,对该拉取请求的比较分支进行提交。 请参阅“允许更改从派生创建的合并请求分支”。

在本地修改活动的拉取请求

  1. 在存储库名称下,单击“ 拉取请求”。

  2. 在拉取请求列表中,单击要修改的拉取请求。

  3. 在合并框中,单击“命令行说明”。 请按照以下步骤下载拟议的拉取请求。

    Pull Request中合并框的屏幕截图。 访问命令行拉取请求说明的链接以深橙色标出。

  4. 或者,若要在 GitHub Desktop 中查看建议的更改,请在 合并拉取请求按钮旁边,单击 在 GitHub Desktop 中打开此项

拉取请求页面上“合并消息”部分的屏幕截图。 标记为“在 GitHub 桌面中打开此内容”的链接以橙色显示。

注意

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

若要在本地检出拉取请求,请使用 gh pr checkout 子命令。 将 PULL-REQUEST 替换为拉取请求的数字、URL 或主分支。

gh pr checkout PULL-REQUEST

在本地修改非活动拉取请求

如果拉取请求的作者对请求无响应或已删除其分支,则请求请求中建议的更改仍可通过新的拉取请求进行合并。 但是,如果要进行更改,则需要采取其他步骤来更新拉取请求。

拉取请求打开后, GitHub 远程存储所有更改。 即使拉取请求尚未合并,拉取请求中的提交也已在仓库中可用。 您可以获取打开的拉取请求,并将其重建为自己的拉取请求。

任何人都可以使用以前打开的拉取请求,以继续处理请求、测试拉取请求,或者打开包含其他更改的新拉取请求。

  1. 在存储库名称下,单击“ 拉取请求”。

  2. “拉取请求 ”列表中,单击要合并的拉取请求。

  3. 找到非活动拉取请求的 ID 号。 这是拉取请求标题后面的数字序列。

    拉取请求标题的屏幕截图。 拉取请求的 ID 编号以深橙色标出。

  4. 打开终端或 Git Bash。

  5. 根据其 ID 编号获取拉取请求的引用。 这会创建新的分支。 使用拉取请求 ID 和要在命令中创建的本地分支的名称。

    git fetch origin pull/ID/head:BRANCH_NAME
    
  6. 切换到基于此 Pull Request 的新分支:

    [main] $ git switch BRANCH_NAME
    > Switched to a new branch 'BRANCH_NAME'
    
  7. 对此分支进行任何必要的更改。 可以运行本地测试或将其他分支合并到分支中。

  8. 准备就绪后,推送新分支:

    [pull-inactive-pull-request] $ git push origin BRANCH_NAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://HOSTNAME/USERNAME/REPOSITORY.git
    >  * [new branch]      BRANCH_NAME -> BRANCH_NAME
    
  9. 用你的新分支创建新的拉取请求。

错误:无法推送某些 ref

远程 refs/pull/ 命名空间是只读的。 如果尝试在那里推送提交,将看到此错误:

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

提示

删除或重命名远程引用时,调用 git-remote 不会影响本地 refs/pull/origin/ 命名空间。