2009-09-10 237 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

相关问题