Search code examples
gitgit-submodules

Unable to find current origin/master revision in submodule path


In my project (which uses git), I need to use a library, which is still in progress. I decided to create a submodule for that library, because I want to update from time to time its latest version (I don't plan to make my own change there).

I did:

git submodule add https://github.com/mb21/JSONedit.git
git commit -am 'added JSNedit submodule'
git push -u origin master
git pull origin master

Then, I did see the JSONedit folder in my local folder, and a link in my git folder online. But when I did git submodule update --remote JSONedit/, I got the following errors:

fatal: Needed a single revision
Unable to find current origin/master revision in submodule path 'JSONedit'

Does anyone know what's wrong here?


Solution

  • Running this in the main repository should do the trick:

    git pull --recurse-submodules
    

    According to the other discussion, especially as @Tobu pointed out in his comment over there, if the error persists, it might be needed to first:

    remove both the submodule worktree (ext/blah) and the matching folder inside the GIT_DIR (.git/modules/ext/blah)


    Alternatively, you could git checkout the branch from which you want to pull while inside the submodule, and then run a git pull.

    Results should be the same.