如何“解决致命问题:不是Git存储库”?

klsxnrf1  于 2022-11-20  发布在  Git
关注(0)|答案(7)|浏览(241)

我试图从项目中删除一个子模块
已尝试rm -rf .git/模块/子模块路径
在那之后我就有问题了

致命错误:不是git存储库

ht4b089n

ht4b089n1#

这两个文件包含绝对子模块路径:

{submodule}/.git
.git/modules/{submodule}/config

因此,如果您移动了存储库,这两个文件中的绝对路径将无效,并导致“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/模块:

rm -rf .git/modules/path_to_submodule

6.)确认:

git commit -m "Removed submodule <name>"

7.)删除现在未跟踪的子模块文件

rm -rf path_to_submodule
bxpogfeg

bxpogfeg2#

我遇到了这个问题,在我的主仓库中没有.git/modules目录。我有一个子模块'build',所以只是删除了所有引用并重新初始化它:

rm -rf .git/modules
rm -rf build
git submodule init
git submodule update
ctzwtxfj

ctzwtxfj3#

我刚碰到这个问题。
在我的例子中,这是由于 checkout 分支具有不同的子模块。

  • 一个分支有一些子模块,但是
  • 另一个具有2个以上的子模块。

由于某种原因,它们无法使用以下项进行初始化:
git submodule update --recursive --init
我需要手动删除此文件/目录才能正常更新。

{submodule-path}/.git
.git/modules/{submodule}/config
xoshrz7s

xoshrz7s4#

当我将一个git仓库移到另一个文件夹时,我遇到了这个错误。

{submodule}/.git

我看到一行带有“绝对”路径,例如:

gitdir: /Users/ajx/Documents/repo/.git/modules/{submodule}

我将其更改为 * 相对 * 路径,例如:

gitdir: ../../.git/modules/{submodule}

我不知道为什么git会硬编码绝对路径...

7y4bm7vi

7y4bm7vi5#

您只需更新.git文件即可
nano {我的子模块}/.git
使用正确的gitdir。
因为我认为你更改了文件夹的路径

yqlxgs2m

yqlxgs2m6#

在我的情况下,当我尝试git commit -m "***",这个问题发生:致命错误:不是git存储库:库-sp18/../.git/模块/库-sp18
我的解决方案:删除库中的.git文件-sp18和git init

nvbavucw

nvbavucw7#

1.从资料档案库.git/config中删除子模块部分
1.删除子模块目录:

rm -rf {submodule-path}
rm -rf .git/modules/*

这些都是保存子模块信息的区域

相关问题