9

Is there any way to move submodules within your superproject without removing them first and re-adding them ?

4

2 回答 2

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
#
  • 最后提交更改。
于 2011-06-10T18:14:09.930 回答
1

我不认为现在有。

有一个补丁正在制作中,用于教授“ git mv”如何处理移动子模块,包括如何更新.gitmodules文件。
但它还没有。
简单地为现有子模块切换远程仓库更简单,但不是你想要的。

于 2010-12-01T11:33:57.183 回答