2010-08-20 76 views
2

Git是分佈式源代碼管理系統,沒錯。如何在沒有集中存儲庫的情況下連接兩個開發人git知識庫

我們的團隊使用Github,如果兩個開發人員想在同一個分支上工作,看起來分支需要在他們都能訪問它之前推送到遠程......或者這樣做嗎?

開發人員是否可以從另一個開發人員本地存儲庫中提取?

回答

5

開發人員可以從另一個開發人員本地存儲庫中提取嗎?

是。對其他開發人員的存儲庫(即.git目錄中的實際文件)進行只讀訪問(nfs,ssh,...)就足夠了。或者,如果開發者安裝了一個git服務器,其他人可以從中獲得。

我不計算通過郵件發送補丁的可能性。

+0

恩,朋友試過。沒有一些跳過循環,它不起作用。您至少需要一臺機器上的「中央」回購,這兩個開發人員都可以用它來推/拉。 Git 1.7+甚至在嘗試寫入非裸回購時顯示警告。 – ZeissS 2010-08-20 12:26:16

+1

@ZeissS:如果您嘗試*推*,您會收到這些警告。另一方面,*拉*很好。我總是從同事的倉庫中挑選變化。 – 2010-08-20 12:29:30

+0

@zeiss,沒有中央回購,效果很好。然而,你確實無法在當前正在使用的分支中推送某些內容(所以在「服務器」一側簽出)。這就是爲什麼一箇中央回購的原因。不是因爲它是中心的,而是因爲它不檢查任何東西。如果都開發,在本地分支上工作,並推動遠程的東西(這是沒有檢查出任何人),將工作。 – mb14 2010-08-20 12:32:18

1

這取決於這兩個開發人員的連接程度。如果你在同一臺機器上工作,那麼你可以直接從其他用戶的克隆中取出。如果你在同一個網絡上工作,你可以設置一個類似git daemon的簡單服務器。

如果您位於防火牆之後的單獨網絡中,那麼您可以使用共享的公共服務器共享更改。或者,您可以使用git format-patchgit am通過電子郵件向另一個發送補丁。

+1

相同的網絡也可能允許ssh訪問 - 比'git-daemon'更容易。 – Cascabel 2010-08-20 13:49:30

0

是的,您需要使用git remote add ...命令將每個用戶存儲庫可見添加到每個用戶。顯然,他們需要能夠看到對方的電腦。您可能必須設置ssh或使用git daemon

0

如果您已經在使用Github,那麼讓您在同一分支上工作的最簡單方法就是不斷從Github上推/拉。推動/拉動對方的機器會很快變得毛茸茸,並導致更多的頭痛。當然,您可以使用另一臺內部服務器或在您的一臺或兩臺機器上設置裸回購,但這可能會導致設置過於複雜,並導致管理源代碼需要額外的時間和精力。

讓你(DOM),並在同一分支上另一名開發人員(我們叫他約翰)之間展開,首先在本地計算機上創建的分支,它推送到Github上:

#On Dom's machine: 
git checkout -b cool_feature 
git push origin cool_feature #assumes origin is github 

#on John's machine: 
git checkout -b cool_feature 
git pull origin cool_feature 

現在你們在本地主機上都有相同的回購副本。隨意開發並確保你們經常提交併將提交提交給Github。另外,確保你經常從Github上拉。

+0

缺點是,我試圖避免的部分是github需要清理;每個功能分支在完成後都需要清理,刪除。 – 2010-08-22 11:01:43