2014-05-14 55 views
1

我一直在使用svn或git與一個集中的組織(只有一個遠程服務器,每個人都從中拉出並且每個人都推送到這個服務器)。Git處於分散模式:我們是否必須添加所有遙控器?我怎麼知道從哪個遙控器拉出?

我想知道在我們將git與分散組織結合使用時它是如何工作的。

是否每個人都必須手動添加所有其他人git remote add ....?包括當20個開發團隊成爲21開發團隊時,每個人都需要添加新開發人員,而新開發人員需要添加20個開發團隊?

我的另一個問題是我們如何知道在哪裏推拉? 是否有一個系統可以檢查所有遠程PC中的最高級版本? 如果我已經做了一些工作,我承諾然後呢?我必須推嗎?

非常感謝

+0

每個團隊都有一定的結構。總是有一個你需要從中獲得的商定基準。只有在針對特定任務形成子團隊時,您才需要添加其他遠程。但你永遠不需要關心其他人的分支。 –

+0

你爲什麼需要這個? – iberbeu

回答

3

難道每個人都有用git手動添加所有其他遠程添加....

沒有,因爲它是爲你做,當你克隆遠程回購。

推薦的工作流程是克隆一個「祝福」回購(類似於集中式工作流程),並從其中拉出/推送。

http://git-scm.com/figures/18333fig0501-tn.png

一個git status將指示,如果你有本地提交推所有的時間。

沒有什麼可以阻止你添加同事的回購網址,以便直接與他/她的回購交換,但最簡單的工作流程仍然是保留一個遠程「起源」回購作爲受祝福的回購。

多見於「Distributed Git - Distributed Workflows」,這說明更復雜的工作流程:

http://git-scm.com/figures/18333fig0502-tn.png

因爲Git的可以讓你有多個遠程倉庫,它可能有一個工作流程,每個開發者都有寫訪問自己的公共存儲庫並讀取其他人的訪問權限

此場景通常包含代表「官方」項目的規範存儲庫。
要爲該項目做出貢獻,請創建自己的項目公共克隆並將其更改推送到該項目。

然後,您可以向主項目的維護人員發送請求以引入更改。
他們可以添加你的倉庫作爲遠程本地測試您的更改,將它們合併到自己的分支,並推回自己的倉庫

+0

我認爲鏈接的第二張圖片會更合適。 「分佈式」工作流程是維護人員的工作流程。 –

+0

感謝您的回答,但您的架構與集中式組織有何不同?因爲你所展示的正是我們所做的,以及我稱之爲集中的 – Krowar

+0

@Krowar,這就是爲什麼我在我的答案中提到與「集中式」工作流程「相似」的原因;)我的觀點是:使用「未集中」工具不會迫使你增加遙控器;你仍然可以使用一個,但是:1 /你是完全自主的(即使沒有網絡),2 /如果需要的話,你可以選擇推向另一個回購而不是受祝福的回購(在這種情況下,你會添加一個遙控器,只有那時)。 – VonC