将克隆的git存储库转换为子模块

时间:2013-01-28 03:04:17

标签: git git-submodules

我有一个git存储库的项目,在该项目中我有一些克隆的git存储库。

目录结构是这样的。

main-project
    -other_project (cloned git repository)
    -another_project (cloned git repository)

当我尝试将主项目克隆到另一个系统时,它只有other_project和another_project的空目录。

我知道我应该首先使用git submodule添加这些存储库。既然我没有,是否有办法解决我所造成的混乱局面?

里面有大约15个存储库(应该是子模块),因此非常感谢将所有这些存储库“批量转换”为子模块的方法。

2 个答案:

答案 0 :(得分:1)

你需要创建一个类似于“How to do a bash foreach csv field to 'git submodule add'”的脚本,除了对于每个嵌套的repo,你需要提取上游repo url(git remote origin

然后添加由父{2}}创建的.gitmodules文件,然后提交。

您将能够"submodule add"(使用--recursive选项)您的父级回购,并取回所有这些子模块。

答案 1 :(得分:0)

您也可以执行git submodule add ./path/to/subdirectory ./path/to/subdirectory,它会将存储库添加为子模块,但使用不正确的原始网址。然后,您可以手动编辑.git/config并使用正确的网址(即您克隆的网址)替换网址。