我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

本地检查拉取请求

有人从您仓库的复刻或分支向您发送拉取请求时,您可能希望在本地合并它以解决合并冲突, 或者在 GitHub 上合并之前在本地计算机上测试并验证更改。

注:您可以要求创建拉取请求的人允许任何对上游仓库有推送权限的人将提交推送到其拉取请求中,以帮助他们更快地处理合并。 更多信息请参阅“允许更改从复刻创建的拉取请求分支”。

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

  1. 在仓库名称下,单击 Pull requests(拉取请求)

    议题和拉取请求选项卡选择

    1. 在拉取请求列表中,单击要合并的拉取请求。
  2. 在拉取请求底部附近的合并框中,单击 command line instructions(命令行说明)。 按照步骤顺序解决提议的拉取请求。

    访问命令行拉取请求说明的链接

  3. (可选)要在 GitHub Desktop 中查看提议的更改,请单击 open this in GitHub Desktop(在 GitHub Desktop 中打开)

    在 Desktop 中本地打开拉取请求的链接

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

非活动拉取请求意味着其所有者已停止响应或者(更有可能)已删除其复刻。 如果复刻被删除,该拉取请求仍可以进行合并。 但是,如果您要对拉取请求进行更改,而其作者又没有响应,则需要执行一些额外步骤来更新拉取请求。

一旦打开了拉取请求,GitHub 会为您在线存储所有更改。 换句话说,即使在合并拉取请求之前,仓库也能提供该拉取请求中的提交。 这意味着您可以获取打开的拉取请求,并重新创建它作为自己拥有的拉取请求。

任何人都可以处理先前打开的拉取请求,以继续处理它、测试它,甚至进行一些额外更改后作为新的拉取请求打开它。 但是,只有具有推送权限的协作者才能合并拉取请求。

  1. 在仓库名称下,单击 Issues(议题) Pull requests(拉取请求)

    议题和拉取请求选项卡选择

  2. 在“Pull Requests(拉取请求)”列表中,单击要合并的拉取请求。

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

    Pull Requests ID number

  4. 打开 Terminal(终端)Terminal(终端)Git Bash终端

  5. 根据其 ID 号获取对该拉取请求的引用,在该过程中创建一个新分支。

    $ git fetch origin pull/ID/head:BRANCHNAME
  6. Switch to the new branch that's based on this pull request:

    [master] $ git checkout BRANCHNAME> Switched to a new branch 'BRANCHNAME'
  7. 现在,您可以使用此分支执行任何操作。 You can run some local tests, or merge other branches into it, including master. 根据需要进行修改!

  8. When you're ready, you can push the new branch up:

    [pull-inactive-pull-request] $ git push origin BRANCHNAME> 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://github.com/username/repository.git
    >  * [new branch]      BRANCHNAME -> BRANCHNAME
  9. Create a new pull request with your new branch.

Error: Failed to push some refs

The remote refs/pull/ namespace is read-only. If you try to push any commits there, you'll see this error:

! [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'

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

问问别人

找不到要找的内容?

联系我们