将子模块的gitdir迁移到'in-tree'

时间:2017-07-12 12:01:39

标签: git git-submodules

我的仓库中有一个子模块,其中.git文件只有一行

gitdir: ../.git/modules/mysubmodule

但是,gitlab的CI运行者似乎在使用此gitdir语句时出现问题,因此我想将../.git/modules/mysubmodule移至./mysubmodule/.git

我是使用mv做到的 我没有使用git mv,因为这个命令抱怨

fatal: cannot move directory over file, source=.git/modules/mysubmodule, destination=mysubmodule/.git

我还从worktree文件中删除了mysubmodule/.git/config行。

但是,当我想提交更改时(无论是超级项目还是子模块),git都没有列出要提交的更改。

这就是为什么我想知道如何将gitdir移动到另一条路径?

1 个答案:

答案 0 :(得分:1)

.git git中看到./mysubmodule/.git仍然认为mysubmodule是一个子模块,并没有将其显示为superrepo的一部分。

如果你想删除子模块并直接重新添加它们,你应该remove submodules添加它们,并在没有.git子目录的情况下添加它们。

或从git submodule切换到git subtree。请参阅https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txthttps://medium.com/@v/git-subtrees-a-tutorial-6ff568381844