如何"resolve fatal: Not a git repository"?
How to "resolve fatal: Not a git repository"?
我试图从项目中删除一个子模块
已尝试 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 <name>"
7.) 删除现在未跟踪的子模块文件
rm -rf path_to_submodule
您只需更新 .git 文件
nano {my submodule}/.git
使用正确的 git目录。
因为我认为您更改了文件夹的路径
我 运行 在将 git 存储库移动到另一个文件夹后出现此错误。当我查看时:
{submodule}/.git
我看到了一条带有 绝对 路径的单行,例如:
gitdir: /Users/ajx/Documents/repo/.git/modules/{submodule}
我将其更改为相对路径,例如:
gitdir: ../../.git/modules/{submodule}
我不确定为什么 git 会硬编码绝对路径...
我 运行 进入了这个,但在我的主存储库中没有 .git/modules
目录。我有一个子模块 'build',所以只需删除所有引用并重新初始化它:
rm -rf .git/modules
rm -rf build
git submodule init
git submodule update
我刚遇到这个问题。
就我而言,这是由于结帐分支具有不同的子模块。
- 一个分支有一些子模块,但是
- 另一个还有2个子模块。
出于某种原因,它们无法初始化:
git submodule update --recursive --init
我需要手动删除这个 files/diretories 才能正常更新。
{submodule-path}/.git
.git/modules/{submodule}/config
我试图从项目中删除一个子模块
已尝试 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 <name>"
7.) 删除现在未跟踪的子模块文件
rm -rf path_to_submodule
您只需更新 .git 文件
nano {my submodule}/.git
使用正确的 git目录。
因为我认为您更改了文件夹的路径
我 运行 在将 git 存储库移动到另一个文件夹后出现此错误。当我查看时:
{submodule}/.git
我看到了一条带有 绝对 路径的单行,例如:
gitdir: /Users/ajx/Documents/repo/.git/modules/{submodule}
我将其更改为相对路径,例如:
gitdir: ../../.git/modules/{submodule}
我不确定为什么 git 会硬编码绝对路径...
我 运行 进入了这个,但在我的主存储库中没有 .git/modules
目录。我有一个子模块 'build',所以只需删除所有引用并重新初始化它:
rm -rf .git/modules
rm -rf build
git submodule init
git submodule update
我刚遇到这个问题。
就我而言,这是由于结帐分支具有不同的子模块。
- 一个分支有一些子模块,但是
- 另一个还有2个子模块。
出于某种原因,它们无法初始化:
git submodule update --recursive --init
我需要手动删除这个 files/diretories 才能正常更新。
{submodule-path}/.git
.git/modules/{submodule}/config