我们刚刚用 bitbucket 建立了一个项目。我们将我们的“生产”[P] 代码放在一个 repo 上,然后我创建了一个 fork[m],然后我的同事 [C] 也创建了一个 fork。
[P]
/ \
[M] [C]
我做了一些更改,创建了一个拉取请求并接受了它,所以 [P] 现在有了我的代码,[M]。
这是我感到困惑的地方。[C],我的同事回购如何获得更新的代码?
谢谢!
你的同事需要从 P 那里拉出来。
如果您正在master
P 中的分支上工作,那么命令将是...
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
' 将是它们各自的上游存储库MLocal
and CLocal
,即 M 或 C,而不是P
。
(参见“源和上游有什么区别”,对于 GitHub,但也适用于 BitBucket)
这对 Muser 很有用,因为:
Muser
可能不想直接推送到P
(他可以,但他是P
BitBucket 的所有者),所以在这里,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
任何修改中取回.C
P