创建一个包含另一个git存储库的git存储库

时间:2009-09-10 09:14:38

标签: git version-control

我创建了一个简单的git repo(让我们称之为repo#1)并克隆它。

  • 在克隆(repo#2)中,我创建了几个文件夹,其中一个我决定制作一个git repo(repo#3)。
  • 当我提交repo#2时,一切都按预期运行,而忽略了repo#3(.git文件夹,文件提交)。

如何将repo#3添加到repo#2中,这样当我将repo#2推送到repo#1时,我可以单独复制repo#1,我也可以访问repo的历史记录等# 3?

换句话说。如何创建包含另一个git存储库的git存储库?

5 个答案:

答案 0 :(得分:11)

我不知道如何完全按照你的建议行事,但是子模块可能会接近(或者尽可能接近)。这是一个不错的教程:

http://git.or.cz/gitwiki/GitSubmoduleTutorial

答案 1 :(得分:3)

你不应该这样做。 .git /下的元数据在repo生命周期内发生了变化,这种变化不一定意味着应该提交的“内容更改”:简单git repack更改.git下的文件,但不应提交更改。你为什么要这样做?

答案 2 :(得分:2)

请参阅git submodule

我从未使用它,所以我所能做的就是发布链接......

答案 3 :(得分:2)

我不是GIT专业人士,但我认为你指的是git子模块

git submodule --help

答案 4 :(得分:0)

在容器存储库根文件夹中,只需执行:

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

这将克隆containedrepo目录中的/containedrepo。从现在开始,您不应在/containedrepo目录中进行更改,而是在containedrepo中进行更改,然后将其拉出来。当您拉动主容器存储库时,它还将提取所有子模块存储库,例如, containedrepo.git

这是一个很棒的教程:https://github.com/NebuPookins/git-submodule-tutorial