本地检查拉取请求
有人从您仓库的分叉或分支向您发送拉取请求时,您可能希望在本地合并它以解决合并冲突, 或者在 GitHub 上合并之前在本地计算机上测试并验证更改。
注:您可以要求创建拉取请求的人允许任何对上游仓库有推送权限的人将提交推送到其拉取请求中,以帮助他们更快地处理合并。 更多信息请参阅“允许更改从分叉创建的拉取请求分支”。
在本地修改活动的拉取请求
-
在仓库名称下,单击 Pull requests(拉取请求)。
-
- 在拉取请求列表中,单击要合并的拉取请求。
-
在拉取请求底部附近的合并框中,单击 command line instructions(命令行说明)。 按照步骤顺序解决提议的拉取请求。
-
(可选)要在 GitHub Desktop 中查看提议的更改,请单击 open this in GitHub Desktop(在 GitHub Desktop 中打开)。
在本地修改非活动拉取请求
非活动拉取请求意味着其所有者已停止响应或者(更有可能)已删除其分叉。 如果分叉被删除,该拉取请求仍可以进行合并。 但是,如果您要对拉取请求进行更改,而其作者又没有响应,则需要执行一些额外步骤来更新拉取请求。
一旦打开了拉取请求,GitHub 会为您在线存储所有更改。 换句话说,即使在合并拉取请求之前,仓库也能提供该拉取请求中的提交。 这意味着您可以获取打开的拉取请求,并重新创建它作为自己拥有的拉取请求。
任何人都可以处理先前打开的拉取请求,以继续处理它、测试它,甚至进行一些额外更改后作为新的拉取请求打开它。 但是,只有具有推送权限的协作者才能合并拉取请求。
-
在仓库名称下,单击 Issues(议题)或 Pull requests(拉取请求)。
-
在“Pull Requests(拉取请求)”列表中,单击要合并的拉取请求。
-
找到非活动拉取请求的 ID 号。 这是拉取请求标题后面的数字序列。
-
打开终端终端Git Bash终端。
-
根据其 ID 号获取对该拉取请求的引用,在该过程中创建一个新分支。
$ git fetch origin pull/ID/head:BRANCHNAME
-
切换到基于此拉取请求的新分支:
[master] $ git checkout BRANCHNAME > Switched to a new branch 'BRANCHNAME'
- 现在,您可以使用此分支执行任何操作。 您可以运行一些本地测试,或将其他分支合并到其中,包括
master
。 根据需要进行修改! -
准备就绪后,您可以推送新分支:
[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://主机名/username/repository.git > * [new branch] BRANCHNAME -> BRANCHNAME
- 使用新分支创建新拉取请求。
错误:无法推送某些引用
远程 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'
提示:删除或重命名远程引用时,本地 refs/pull/origin/
命名空间将不会受到调用 git-remote
的影响。