我的仓库中有一个子模块,其中.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移动到另一条路径?
答案 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.txt和https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844