我们刚刚用bitbucket建立了一个项目。我们将'生产'[P]代码放在repo上,然后我创建了一个fork [m],然后我的同事[C]也创建了它的一个分支。
[P]
/ \
[M] [C]
我做了一些更改,并创建了一个拉取请求并接受了它,所以[P]现在有了我的代码,[M]。
这是我感到困惑的地方。 [C],我的同事回购如何获得更新的代码?
谢谢!
答案 0 :(得分:9)
你的同事需要从P开始。
如果您正在使用P中的master
分支,那么命令将是......
git pull origin master
答案 1 :(得分:3)
注意:如果我们实际上是在谈论 forking (这是克隆服务器方面的回购的行为)而不是简单的克隆,那么架构是:
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
和CLocal
的{{3}}回购,即M或C,不是P
。
(有关GitHub的信息,请参阅“upstream”,但也适用于BitBucket)
这对Muser很有用,因为:
Muser
可能不想直接推送到P
(他可能,他是BitBucket上P
的所有者),所以在这里,repo M
充当他的“缓冲”Cuser
无权推送P
,所以他也必须分叉在这种情况下,要Cuser
查看P
上的任何更新,他需要将P
添加为CLocal
回购的远程(即他的克隆本地回购他的叉子)
git remote add P https://bitbucket.org/Puser/P
git pull P master
在本地集成并测试这些新更改后(CLocal
),可以将这些更改推回C
,同时Cuser
引入新的演变。只有那些新修改才会成为What is the difference between origin and upstream的一部分,Muser
(和P
所有者)可以检查并添加到P.
同样,Muser
需要将P
添加为MLocal
的远程,以便从C
中取回已被P
接受的任何修改}。