How to "resolve fatal: Not a git repository"?

GitGit Submodules

Git Problem Overview


I was trying to remove one sub-module from the project

Tried rm -rf .git/modules/submodulePath

After that I am having the issue

fatal: Not a git repository

Git Solutions


Solution 1 - Git

These two files contains absolute submodule path:

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

So, if you moved the repo, the absolute path in these two files are not valid, and cause the 'not a git repository' error. Just fix these files manually.

Update:

1.) Delete the relevant section from the .gitmodules file. You can use below command:

git config -f .gitmodules --remove-section "submodule.submodule_name"

2.) Stage the .gitmodules changes

git add .gitmodules

3.) Delete the relevant section from .git/config. You can use below command:

git submodule deinit -f "submodule_name"

4.) Remove the gitlink (no trailing slash):

git rm --cached path_to_submodule

5.) Cleanup the .git/modules:

rm -rf .git/modules/path_to_submodule

6.) Commit:

git commit -m "Removed submodule <name>"

7.) Delete the now untracked submodule files

rm -rf path_to_submodule

Solution 2 - Git

I ran into this and didn't have a .git/modules directory in my main repository. I have one submodule 'build', so just removed any references and reinitialized it:

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

Solution 3 - Git

I ran into this error after I moved a git repository to a different folder. When I looked in:

{submodule}/.git

I saw a single line with an absolute path, e.g.:

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

I changed this to a relative path, e.g.:

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

I'm not sure why git would hardcode absolute paths...

Solution 4 - Git

I've just hit this problem.

In my case, this was due to checkout branches with different submodules.

  • One branch has some submodules, but
  • the other has 2 more submodules.

For some reason, they were impossible to initialize with:

git submodule update --recursive --init

I've needed to manually delete this files/diretories before update worked properly.

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

Solution 5 - Git

You simply can update the .git file

> nano {my submodule}/.git

with the right gitdir.

Because i think you change the path of your folder

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncoreDeviOSView Question on Stackoverflow
Solution 1 - GitShivkumar kondiView Answer on Stackoverflow
Solution 2 - GitJason GoemaatView Answer on Stackoverflow
Solution 3 - GitAlec JacobsonView Answer on Stackoverflow
Solution 4 - GitkikeenriqueView Answer on Stackoverflow
Solution 5 - GitFernando De Brito CerqueiraView Answer on Stackoverflow