我正在尝试使用github fork-and-pull模型扮演维护者的角色(完全访问黄金回购)和贡献者的角色(通过分叉和创建拉取请求做出贡献)。
GitHub明确指示维护者如何从pull请求创建本地分支,以便在本地查看代码(即构建/测试/等): 从你的项目回购:
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)
答案 0 :(得分:1)
分叉你的存储库的人(我称之为" forker")有一个远程克隆,他们正在提交他们的功能分支。 pull请求只是从远程存储库获取更改,然后将它们合并到本地分支。 (注意:由于git pull
与git fetch && git merge
相同,您可能会想到"拉取请求"作为"提取和合并请求"。)
如果您已经从forker的存储库中取出(假设他们的遥控器被称为" forker"),您可能会运行如下命令:
git remote add forker https://github.com/forker/myrepo.git
已经拥有该分支的本地副本,并且该分支具有与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
以使用其最新提交更新本地分支pr-review-branch-name
。每次更新分支时都不需要创建新的分支。