从本地的几个存储库创建git存储库

时间:2017-11-16 20:40:30

标签: git

我有以下目录结构:

父/包含   Child1 /   CHILD2 /   ...   ChildN /

每个子目录都是自己的git存储库,其中包含提交历史记录等。我已经意识到将Parent作为子存储库(可能使用git-subtree或其他东西)制作一个git存储库会更有意义。这是因为子目录是同一项目的所有组件。

我已经查看了各种答案,但它们都涉及从一些远程仓库推/拉,而在这种情况下我的机器的一切都是本地的(我想保持这种方式 - 另外,我不是知道如何使用遥控器。)

所以我的问题是:如何以这样一种方式创建父存储库,即子节点是其中的一部分,但保留其各自的历史记录而不引用任何远程存储库?

这与建议的副本有所不同: 关于远程回购在本地硬盘驱动器上的链接是有帮助的,并且肯定使SO上的其他答案更容易访问。我刚刚尝试了关于合并两个存储库的链接问题中的过程,它几乎完成了这项工作,但在我的案例中却很费力且易于劳动。在该问题中,将合并两个存储库以创建第三个存储库,而在我的情况下,许多存储库需要成为新存储库的目录。

要使用建议的重复答案,我必须复制Parent,比如Parent_copy,然后从Parent中删除所有内容,创建Parent .git目录,然后一次一个地合并Child目录。在此过程中,每个Child的内容将从Parent_copy / Child复制到Parent或忽略(基于.gitignore文件)。然后我可以重新创建,例如Parent / Child1作为空目录,从Parent移动文件,并从Parent_copy / Child1复制被忽略的文件。所以它会起作用,但是有点费力且容易出错。我想知道是否有更有效的方法,理想情况下处理Child目录?

1 个答案:

答案 0 :(得分:2)

使用git submodules并作为子模块使用本地repo路径。

E.g。要使用git submodule add /path/to/some/submodule1.git

将子模块添加到父存储库

请记住,您现有的子存储库应位于父存储库之外。当您致电git submodule add ...

时,适当的参考将被复制到父级回购