如何将Git子模块移动到子目录?

时间:2012-05-19 08:11:47

标签: git git-submodules

伙计们,我只是使用子模块来组织一些Git repos,这里是地址: repos

我想将所有子模块移动到一个名为repos的新目录中,例如,jquery - >回购/ jquery的。

我更改了 .gitmodules 文件,但似乎无效。 我该怎么办?

1 个答案:

答案 0 :(得分:17)

刚才遇到同样的问题,最后删除了子模块引用(概述为in this article)并重新创建了我希望它去的地方。

按照将子模块jquery移动到repos/jquery

的示例
  1. .gitmodules删除(通常为三行)子模块引用。
  2. 检查.git/config是否有对子模块的引用,如果存在则将其删除
  3. 执行git rm --cached jquery将子模块引用从存储库中删除
  4. 删除旧的子模块文件夹
  5. 使用git submodule add git://github.com/jquery/jquery.git repos/jquery
  6. 重新创建子模块引用(正如您之前所做的那样)

    如果你的子模块是set to specific tag, respectively commit(你肯定会在一个稳定的项目中拥有它),你将再次设置它。

    由于这个复杂的过程,我强烈希望(或者至少在git路线图上)有一种更直接的方法来实现这一目标。如果没有,肯定会有一些脚本混在一起,以便更快地做到这一点......