2013-04-17 185 views
1

我有一個和姓名的人士稱,allinone遠程服務器只有一個git的回購,但其實我有幾個項目,說proj1proj2proj3,和我所有這些項目存入allinone,像這樣:是否可以使用一個git倉庫來管理幾個git倉庫?

allinone 
|- .git 
|- proj1/ 
|- proj2/ 
|- proj3/ 

這是事情如何(如果可能的話):

  1. 我創建allinone混帳回購協議
  2. 我創建proj1 git的回購,做一些開發,提交 並做了。
  3. allinone回購創造了proj1分支,「進口」proj1allinoneproj1分支與所有提交日誌。
  4. 與proj2,proj3相同。
  5. 後來我可以簽出proj1分支出一個獨立的目錄。

可能嗎?或者有什麼建議嗎?我不想購買另一個回購。

+2

「我不想*購買*另一個回購。」??只是說,你可能想在git中使用子模塊。 – quantum

+1

請不要這樣做。它傷害了靈魂。只需在bitbucket.org等任何地方免費獲得無限制的私人回購協議。或者來自qqx建議的列表 – hajpoj

回答

1

Git本身並不要求存儲庫中的分支之間有任何關係。因此,您可以創建所需的多個本地存儲庫,並將所有這些存儲庫推送到單個遠程存儲庫。如果您仔細設置每個本地存儲庫使用的refspecs,它甚至可能看起來非常像您爲每個本地存儲庫具有單獨的遠程文件。

但是,無論您使用的是哪種提供程序,都可能會檢查該類型的使用情況,特別是如果他們要對每個存儲庫進行收費。

如果您找到一種方法爲每個項目建立一個單獨的遠程存儲庫,那麼出現問題的可能性要小得多。 git wiki有一個list of hosting sites,其中一些將允許免費託管私人存儲庫。

0

這是糟糕的體系結構。通過這種方式來管理您的回購,您就會自殺。

我發現從來沒有一個合理的理由讓每個項目有多個回購協議。

我只能想象它必須不斷合併所有這些回購以保持更新。

在我看來,你應該爲每個「項目」創建一個單獨的分支,這將更容易讓你保持歷史記錄,工作流和少量合併。但是,即使這樣做會有缺陷,因爲不管你做什麼,你都必須在項目中留下一個合併衝突的大好機會。如果我是你,我會盡我所能去減少你的「allinone」回購,並通過檢查功能分支,當你正在做一些與某個「項目」有關的工作時管理它。

祝你好運!