How to “resolve fatal: Not a git repository”?

后端 未结 5 1263
醉梦人生
醉梦人生 2021-02-01 13:53

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

Tried rm -rf .git/modules/submodulePath

After that I am having the issue

相关标签:
5条回答
  • 2021-02-01 14:21

    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
    
    0 讨论(0)
  • 2021-02-01 14:29

    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

    0 讨论(0)
  • 2021-02-01 14:31

    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
    
    0 讨论(0)
  • 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
    
    0 讨论(0)
  • 2021-02-01 14:34

    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...

    0 讨论(0)
提交回复
热议问题