I added a submodule:
git submodule add git://github.com/chneukirchen/rack.git rack
A file .gitmodules was created like:
[submodule "rack"]
path = rack
url = git://github.com/chneukirchen/rack.git
And of course Git knows about it:
git submodule status
30fb044db6ba5ea874ebc44a43bbd80a42676405 rack (1.3.0-64-g30fb044)
I added a submodule by hand, for example, adding to that file:
[submodule "redcloth"]
path = plugins/redcloth
url = git://github.com/jgarber/redcloth.git
And I repeated the previous command:
git submodule init
Submodule 'rack' () registered for path 'rack'
git submodule update
(no output)
git submodule status
30fb044db6ba5ea874ebc44a43bbd80a42676405 rack (1.3.0-64-g30fb044)
So, as far I can see, what I added by hand is ignored. Is there some way to make Git aware of the lines added by hand in the .gitmodules file?
Note: I’ve also tried to add the lines by hand to the .git/config file and that didn’t work either.
You need to run
UPDATE:
the submodule add command actually clones the entire repo and adds the sha1 to the index.
This may be new behaviour as compared to previous versions of git, the clone was not done immediately.
If you don’t have an entry in the index pointing the module to a particular commit, git submodule update refuses to do anything. This seems to be new behaviour.
Hope this helps.