用Git移动子模块

Raf*_* B. 9 git move git-submodules

有没有办法移动超级项目中的子模块而不先删除它们并重新添加它们?

Axe*_*ert 5

它与删除子模块的方式类似(请参阅如何删除子模块?):

  • 编辑.gitmodules并适当更改子模块的路径,并将其放入索引中 git add .gitmodules
  • 如果需要,创建子模块的新位置的父目录: mkdir -p new/parent
  • 将所有内容从旧目录移动到新目录: mv -vi old/parent/submodule new/parent/submodule
  • 删除旧目录 git rm --cached old/parent/submodule

之后我觉得这样:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   .gitmodules
#       renamed:    old/parent/submodule -> new/parent/submodule
#
Run Code Online (Sandbox Code Playgroud)
  • 最后提交更改.

  • 希望有一个Git命令可以为你完成所有这些;) (4认同)
  • 也不适合我; `new/parent/submodule`显示为未跟踪文件,`old/parent/submodule`显示为已删除.我最终删除并读取子模块 (3认同)