如何在git中修复损坏的子模块配置?

时间:2013-10-22 04:15:17

标签: git git-submodules

我正在创建子模块时遇到这个git错误。我最初在命令中有一个错误的URL,现在任何其他运行都显示此错误。关于什么是错的任何想法?

$ git submodule add -f https://github.com/Shougo/vimproc.vim.git .vim/bundle/vimproc
Adding existing repo at '.vim/bundle/vimproc' to the index
fatal: Not a git repository: .vim/bundle/vimproc/../../../.git/modules/.vim/bundle/vimproc
Failed to add submodule '.vim/bundle/vimproc'

1 个答案:

答案 0 :(得分:17)

可能子模块已添加到索引中。您应该从索引中删除它们。

要完全删除子模块,请执行以下步骤:

1从.git/config

中删除这些行
[submodule ".vim/bundle/vimproc"]
    url = https://github.com/Shougo/vimproc.vim.git

2从.gitmodules

中删除这些行
[submodule ".vim/bundle/vimproc"]
    path = .vim/bundle/vimproc
    url = https://github.com/Shougo/vimproc.vim.git

3删除子模块目录

rm -rf .vim/bundle/vimproc

4个非阶段子模块

git rm --cached .vim/bundle/vimproc

5删除.git/modules

中的子模块目录
rm -rf .git/modules/.vim/bundle/vimproc

最后阅读子模块。