2011-01-11 83 views
63

這裏混帳回購協議是想什麼我:保持內部另一git倉庫

REPO-A 
    /.git 
    /otherFiles 
    /REPO-B 
    /.git 
    /moreFiles 

我希望能夠推動所有的REPO-A的內容REMOTE-A和 REPO-B到REMOTE-B。

可能嗎?

回答

55

這聽起來像你想使用Git submodules

Git使用子模塊解決了此問題。子模塊允許您將Git存儲庫作爲另一個Git存儲庫的子目錄。這使您可以將另一個存儲庫克隆到您的項目中,並保持您的提交單獨。

+5

不完全是:它不會推動所有***回購的內容:只有A加上對B的參考。但我不批評你的回答,當我重新寫作時,我正在寫作幾乎相同 - 閱讀OP的問題;) – VonC 2011-01-11 16:06:43

+0

這幾乎是子模塊的用例。 REPO-A和REPO-B被視爲自己的權利,自己的承諾,起源,歷史等。 – 2011-01-11 16:10:45

+0

所以如果我正在閱讀的權利,我可以獨立簽出一個submodule-d回購完全在我找到的那個?我將如何採取現有的回購協議,並將其作爲另一個項目中的子模塊參考? – JohnO 2011-01-11 19:08:58

47

我一直使用符號鏈接來維護兩個單獨和獨特的回購。

15

是的,您可以完全按照您提到的文件層次結構進行操作。 Repo-B將是獨立的,並且不知道Repo-A。 Repo-A將跟蹤其自己的文件和Repo-B文件中的所有更改。

但是,我不會推薦這樣做。每當您更改文件並在Repo-B中提交時,您都必須在Repo-A中提交。在Repo-B中分支會與Repo-A混淆,並且在Repo-A中分支將會很亂(刪除文件夾等問題)。子模塊絕對是要走的路。

相關問題