我试图从项目中删除一个子模块
尝试了 rm -rf .git/modules/submodulePath
之后我就遇到了这个问题
致命的:不是git存储库
这两个文件包含绝对子模块路径:
{submodule}/.git .git/modules/{submodule}/config
因此,如果您移动了repo,则这两个文件中的绝对路径无效,并导致'not a git repository'错误.只需手动修复这些文件.
更新:
1.)从.gitmodules文件中删除相关部分.您可以使用以下命令:
git config -f .gitmodules --remove-section "submodule.submodule_name"
2.)阶段.gitmodules更改
git add .gitmodules
3.)从.git/config中删除相关部分.您可以使用以下命令:
git submodule deinit -f "submodule_name"
4.)删除gitlink(没有尾部斜杠):
git rm --cached path_to_submodule
5.)清理.git/modules:
rm -rf .git/modules/path_to_submodule
6.)承诺:
git commit -m "Removed submodule"
7.)删除现在未跟踪的子模块文件
rm -rf path_to_submodule
我将git存储库移到另一个文件夹后遇到了此错误。当我查看时:
{submodule}/.git
我看到了一条带有绝对路径的单行,例如:
gitdir: /Users/ajx/Documents/repo/.git/modules/{submodule}
我将其更改为相对路径,例如:
gitdir: ../../.git/modules/{submodule}
我不确定为什么git会硬编码绝对路径...