2

我在此文件夹中有一个子模块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

旧子模块的内容出现,而不是新的。我怎样才能解决这个问题?

4

1 回答 1

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

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

于 2013-08-03T20:58:51.507 回答