2012-04-13 70 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