2012-04-13 73 views
5

我们只是用bitbucket建立一个项目。我们把我们的'生产'代码放在一个回购库中,然后我创建了一个fork [m],然后我的同事[C]也创建了它的一个分支。不明白分叉

[P] 
/ \ 
[M] [C] 

我做了一些改变,并创建了一个拉请求并接受它,所以[P]现在有我的代码[M]。

这里是我困惑的地方。 [C],我的同事回购了更新后的代码如何?

谢谢!

回答

9

你的同事需要如果你在P中的master分支工作从P.

拉,则该命令会...

git pull origin master 
3

注:如果我们实际上是在谈论约forking(这是对服务器侧克隆回购的动作),而不是简单的克隆,然后将模式是:

   BitBucket 

    ------------[P]----------- 
    |   ^   | 
    |   |   | 
(forked) (pull request) (forked) 
    |      | 
    v      v 
    [M]      [C] 
    |      | 
----|------------------------|----- 
    | Local workstations | 
    |      | 
(git clone)    (git clone) 
    |      | 
    v      v 
[MLocal]     [CLocal] 

换言之,MC位于BitBucket服务器上,而不在MuserCuser本地工作站上。
'origin' 将是他们的MLocalCLocal和各自upstream回购,即M或C,P
(请参阅“What is the difference between origin and upstream”,对GitHub上,而且也适用于到位桶)

本作的Muser是有用的,因为:

  • Muser可能不希望直接推到P(他可能是,他是的P上到位桶)的所有者,所以在这里,回购M充当他的“缓冲器”
  • Cuser无权推P,所以他必须到餐桌以及

在这种情况下,Cuser看到P任何更新,他需要为远程添加PCLocal回购(他的叉子的,即他的克隆本地回购)

git remote add P https://bitbucket.org/Puser/P 
git pull P master 

一旦这些新的变化是整合并在本地进行测试(在CLocal),它们可以被推回到C,以及由Cuser引入的新的演变。只有那些新的修改将是一个pull request的一部分,Muser(和P所有者)检查和添加到P.

同样,Muser需要作为远程添加PMLocal,以取回任何修改从C被接受为P