2009-09-10 291 views
5

我創建了一個裸git倉庫(讓我們稱之爲倉庫#1)並克隆它。創建一個包含另一個git倉庫的git倉庫

  • 在克隆(回購#2)中,我創建了幾個文件夾,其中一個我決定做一個git回購(回購#3)。
  • 當我提交回購#2時,所有內容都按預期運行,以免回購#3被忽略(.git文件夾和文件提交)。

如何添加回購#3#回購2,這樣,當我把回購#2#回購1,我可以做的回購#1一個單獨的克隆中,我還可以訪問歷史等。回購#3?

換句話說。我如何創建一個包含另一個git倉庫的git倉庫?

回答

3

你不應該這樣做。 .git /下的元數據在repo生命週期中發生變化,並且更改並不一定意味着應該提交的「內容更改」:簡單git repack在.git下更改文件,但不應提交更改。你爲什麼想這樣做?

+0

我使用的是母公司回購(#2),方便文件夾的輕鬆備份,它包含其中包括回購#3。一切都存儲在USB驅動器上,這樣我可以輕鬆地將所有內容的備份推送到備份位置(回購#1)。 看來,我將不得不手動複製文件夾來備份它們。 – 2009-09-10 17:58:09

+0

如果你想要的只是所有倉庫(和工作副本)的備份,那麼你可能只是使用一些對git ant沒有任何結構的東西,例如mercurial或bazaar。 正如wRAR所說,它會添加很多你不需要的東西,但是如果你只是想要備份,那麼它可能是好的。但是你也可以寫一個腳本,通過你的手柄上的每個存儲庫並將其推送到服務器。 – 2009-10-22 07:43:48

2

看到git submodule

我從來沒有使用過,所以我能做的就是發佈一個鏈接...

2

我不是一個GIT親任何手段,但我認爲你指的是git submodules

git submodule --help 
0

在容器中存儲庫根文件夾,只是做:

git submodule add https://github.com/yourusername/containedrepo.git containedrepo 

這將克隆containedrepo/containedrepo目錄內。從現在開始,您不應在/containedrepo目錄中進行更改,而應對containedrepo進行更改,然後將其取消。當您拉出主容器存儲庫時,它也將拉出所有子模塊存儲庫,例如containedrepo.git

這裏有一個很好的教程:https://github.com/NebuPookins/git-submodule-tutorial

相關問題