Search code examples
gitgit-submodules

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


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


Solution

  • 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