Git 移动子模块
示例
跑:
$ git mv old/path/to/module new/path/to/module
.gitmodules适当地编辑和更改子模块的路径,然后使用将其放在索引中gitadd.gitmodules。
如果需要,创建子模块()的新位置的父目录。mkdir-pnew/path/to
将所有内容从旧目录移动到新目录()。mv-viold/path/to/modulenew/path/to/submodule
确保Git跟踪此目录()。gitaddnew/path/to
使用删除旧目录。gitrm--cachedold/path/to/module
将目录及其所有内容移到。.git/modules/old/path/to/module.git/modules/new/path/to/module
编辑文件,确保工作树项指向新位置,因此在此示例中应为。通常,在该位置的直接路径中应该再有两个目录。。编辑文件,确保其中的路径指向主项目文件夹中正确的新位置,因此在此示例中。.git/modules/new/path/to/configworktree=../../../../../old/path/to/module..new/path/to/module/.git.gitgitdir:../../../.git/modules/new/path/to/module
gitstatus输出如下所示:
#Onbranchmaster
#Changestobecommitted:
# (use"gitresetHEAD<file>..."tounstage)
#
# modified: .gitmodules
# renamed: old/path/to/submodule->new/path/to/submodule
#
最后,提交更改。