Git Submodules. Pulling into a new clone of the super-project
OK. So I thought I had this licked … but now ….
I have a project which includes one small library from GitHub as a submodule. In the original version of that super-project the submodule is working as expected.
However, I just cloned the superproject, did what I thought I should : “git submodule init”, got the directory of the submodule to appear, but it’s empty.
If I now try to do
git submodule update
fatal: Needed a single revision Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
If I try
git submodule foreach git pull
Entering 'external_libraries/BEACHhtml' fatal: Where do you want to fetch from today? Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
In my .git/config, I have this :
[submodule "external_libraries/BEACHhtml"] url = email@example.com:interstar/BEACHhtml.git
In my .gitmodules I have this :
[submodule "external_libraries/BEACHhtml"] path = external_libraries/BEACHhtml url = firstname.lastname@example.org:interstar/BEACHhtml.git
Anyone got an idea what’s missing?
6 Solutions collect form web for “Git Submodules. Pulling into a new clone of the super-project”
I have the same problem as you. This is a bug in git: http://lists-archives.com/git/785138-git-submodule-update-is-not-fail-safe.html
In short, for your problem, try:
# rm -rf external_libraries/BEACHhtml # git submodule update
It seems there is something wrong with the previous checkout folder, remove it, and update again solves the problem.
I had this problem (flaky network so I got dropped submodule checkout like this) and I solved it by making this script (named it
git-submodule-fix so I could run it as
#!/bin/bash for arg do echo $arg find . -name "`basename $arg`" | grep "$arg\$" | xargs rm -fr done
If you get this i.e. from a
git submodule update
fatal: Needed a single revision Unable to find current revision in submodule path 'some/submodule/path'
git submodule-fix some/submodule/path git submodule update
use a diff tool to compare the original clone that’s working and this one. Also, what does
git submodule output. Ensure you are pointing to the same branch in each repo before you do.
I’m suspecting that you’ve switched to a branch or older revision where the submodule was not defined.
hope this helps
I had the same issue with a submodule on a project. When I tried to clone the submodule separately it worked well.
I’ve tried all of the answers above, but without success (git submodule update, …, removing the submodule folders, …).
The issue disappeared after update of git (from Git-1.7.11-preview20120710) to latest version (to Git-184.108.40.206-preview20130201) at the time. Strangely my colleagues had even older version, worked without any issues, but they were on Mac. I’m on Win7 64bit.
Solved by deleting 2 directories and refetching submodule:
- Go to
external_libraries/BEACHhtmland look into
.gitfile. It’s content should be something like
- Delete both
From now on
git submodule update runs without errors.
I am on Window7.
run ‘rm -rf src/sizzle’, can ok!
E:\GitHub\fork\jquery>rm -rf src/sizzle
E:\GitHub\fork\jquery>git submodule update
Submodule path ‘src/sizzle’: checked out ’19c7b3440385c9f628a7bc1c5769f6946fcc6887′
Saved as: master
Done, without errors.