我们刚刚用 bitbucket 建立了一个项目。我们将我们的“生产”[P] 代码放在一个 repo 上,然后我创建了一个 fork[m],然后我的同事 [C] 也创建了一个 fork。
[P]
/ \
[M] [C]
我做了一些更改,创建了一个拉取请求并接受了它,所以 [P] 现在有了我的代码,[M]。
这是我感到困惑的地方。[C],我的同事回购如何获得更新的代码?
谢谢!
你的同事需要从 P 那里拉出来。
如果您正在masterP 中的分支上工作,那么命令将是...
git pull origin master
注意:如果我们实际上是在谈论分叉(这是在服务器端克隆 repo 的行为)而不是简单的克隆,那么架构是:
BitBucket
------------[P]-----------
| ^ |
| | |
(forked) (pull request) (forked)
| |
v v
[M] [C]
| |
----|------------------------|-----
| Local workstations |
| |
(git clone) (git clone)
| |
v v
[MLocal] [CLocal]
换句话说,M并且C在 BitBucket 服务器上,而不是在Muser本地Cuser工作站上。
' origin' 将是它们各自的上游存储库MLocaland CLocal,即 M 或 C,而不是P。
(参见“源和上游有什么区别”,对于 GitHub,但也适用于 BitBucket)
这对 Muser 很有用,因为:
Muser可能不想直接推送到P(他可以,但他是PBitBucket 的所有者),所以在这里,repoM充当他的“缓冲区”Cuser无权推动P,他也必须分叉在这种情况下,Cuser要查看 上的任何更新P,他需要添加P为远程CLocal仓库(即他的 fork 的克隆本地仓库)
git remote add P https://bitbucket.org/Puser/P
git pull P master
一旦这些新的变化在本地(在CLocal)被集成和测试,它们就可以被推回C,以及Cuser. 只有那些新的修改将成为拉取请求的一部分,供Muser(和P所有者)检查并添加到 P。
同样,Muser需要将P其作为远程添加到,以便从接受的MLocal任何修改中取回.CP