修复git回购中移动的子模块?

修复git回购中移动的子模块?,git,Git,我有一个带有一些子模块的简单git repo (repo_root)/versions/sub_module_a 我已将子模块移动到更深的文件夹中。现在回购协议看起来是这样的: (repo_root)/versions/rel/sub_module_a 然而,现在事情有点混乱,子模块结构似乎被破坏了。我编辑了.gitmodules文件,试图反映路径更改,但没有成功。是否有办法使用更新的层次结构和推送重新初始化我的git repo。使用git mv命令将子模块移动到新位置,而不是手动移动到新位

我有一个带有一些子模块的简单git repo

(repo_root)/versions/sub_module_a
我已将子模块移动到更深的文件夹中。现在回购协议看起来是这样的:

(repo_root)/versions/rel/sub_module_a

然而,现在事情有点混乱,子模块结构似乎被破坏了。我编辑了.gitmodules文件,试图反映路径更改,但没有成功。是否有办法使用更新的层次结构和推送重新初始化我的git repo。

使用git mv命令将子模块移动到新位置,而不是手动移动到新位置,例如

cd /path/to/repo_root
mkdir -p versions/rel
git mv versions/sub_module_a versions/rel/

这样,Git将为您处理所有管道。

谢谢。最后一个问题,是否可能在不同的地方多次使用相同的子模块?例如/path/to/repo_root/versions/rel/sub_module_a和/path/to/repo_root/versions/dev/sub_module_a?@symbolx:Yes-这不仅是可能的,而且每个这样的子模块可以在不同的提交上。但请注意,您将获得子模块的多个克隆。