将新子模块添加到旧子模块的位置

时间:2012-09-08 16:04:37

标签: git git-submodules

我在此文件夹abc/submodule中有一个子模块,我使用以下命令将其删除:

rm -rf abc/submodule
# remove submodule in .gitmodules
# remove submodule in .git/config
git rm --cached abc/submodule
git push origin master

现在我想将新的子模块添加到同一个地方:

git submodule add <link> abc/submodule

显示旧子模块的内容而不是新子模块的内容。我该如何解决这个问题?

先谢谢。

1 个答案:

答案 0 :(得分:0)

git submodule将Git信息存储在$toplevel/.git/modules/$sm_path中。要完全删除它,您需要删除该目录。您应该能够执行以下命令:

repo="submodule"
rm -rf $(cd $repo && git rev-parse --git-dir)
rm -rf $repo
git rm --cached "$repo"
git config --remove-section submodule."$repo"
git config -f .gitmodules --remove-section submodule."$repo"

这是git submodule deinit的扩展,只与git submodule init相反。

请注意,您还需要在推送之前提交(这些更改仅暂存)。