如何更新 git 从 github pull request 创建的分支并进行更新

how to update git branch created from github pull request with more recent changes

我正在试验 github 分叉拉模型扮演维护者的角色(对黄金回购的完全访问)和贡献者的角色(通​​过分叉和创建拉取请求做出贡献)。

GitHub 为维护者提供了关于如何从拉取请求创建本地分支以便在本地审查代码的明确指示(即 build/test/etc): 来自您的项目回购:

git checkout -b pr-review-branch-name master
git pull [fork-url-from-pull-request]

到目前为止一切顺利。作为维护者,我对 PR 发表评论,并要求做一些额外的工作。贡献者继续进行请求的更改,将它们推送到他在服务器上的分支(并更新拉取请求留言板)..

我的问题:作为维护者,我是否需要如上所述创建一个新分支来拉取拉取请求中的更新代码?或者有没有办法让我更新上面已经创建的分支?

更新: 这是我的确切命令(已删除标识):

$ /c/ws/demo/maintainer
$ git clone https://server.xyz.com/PoCs/fork-and-pull-test.git
Cloning into 'fork-and-pull-test'...
Checking connectivity... done.

$ /c/ws/demo/maintainer
$ cd fork-and-pull-test/

$ /c/ws/demo/maintainer/fork-and-pull-test (master)
$ git checkout -b pr-review-branch-name master
Switched to a new branch 'pr-review-branch-name'

$ /c/ws/demo/maintainer/fork-and-pull-test (pr-review-branch-name)
$ git pull https://server.xyz.com/forker/fork-and-pull-test.git master
...
From https://server.xyz.com/forker/fork-and-pull-test
 * branch            master     -> FETCH_HEAD
Updating 57e8399..96cada4
Fast-forward
..

$ /c/ws/demo/maintainer/fork-and-pull-test (pr-review-branch-name)
$ git status
On branch pr-review-branch-name
nothing to commit, working directory clean

$ git remote -v
origin  https://server.xyz.com/PoCs/fork-and-pull-test.git (fetch)
origin  https://server.xyz.com/PoCs/fork-and-pull-test.git (push)

分叉您的存储库的人(我称之为 "forker")有一个远程克隆,他们正在致力于他们的功能 b运行ch。拉取请求只是您从他们的远程存储库中获取更改,然后将它们合并到您的本地 b运行ch。 (注意:由于 git pullgit fetch && git merge 相同,您可能会将 "Pull Request" 视为 "Fetch & Merge Request"。)

如果您已经从 forker 的存储库中提取(假设他们的远程名为 "forker"),您可能 运行 像这样的命令:

git remote add forker https://github.com/forker/myrepo.git

已经有 b运行ch 的本地副本,并且 b运行ch 有一个与 forker 的远程存储库关联的远程。

如果你 运行 git remote -v 你应该看到 forker 的存储库:

$ git remote -v
origin      git@github.com:me/myrepo.git (fetch)
origin      git@github.com:me/myrepo.git (push)
forker      git@github.com:forker/myrepo.git (fetch)
forker      git@github.com:forker/myrepo.git (push)

然后你可以 运行 git pull forker pr-review-branch-name 用他们最新的提交更新你的本地 b运行ch pr-review-branch-name。每次更新 b运行ch 时都不需要创建新的 b运行ch。