Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git: change origin of cloned submodule

I created a project submodule and put it up on Github.

I created another project, supermodule, and then did this:

cd supermodule git init mkdir lib git clone git://github.com/tandu/submodule lib/submodule git submodule add ./lib/submodule lib/submodule 

This worked fine, but on the website, it can't find the link to the submodule when viewing the files (in fact it just says "Loading Commit data" forever). The submodule folder itself has the correct origin.

Apparently, what I should have done was

... mkdir lib git submodule add git://github.com/tandu/submodule lib 

...but it's too late for that now. How can I have the submodule in this project correctly point to origin?

like image 846
Explosion Pills Avatar asked Apr 25 '12 14:04

Explosion Pills


People also ask

How do I change my submodule location?

Git Submodules Moving a submodule If needed, create the parent directory of the new location of the submodule ( mkdir -p new/path/to ). Move all content from the old to the new directory ( mv -vi old/path/to/module new/path/to/submodule ). Make sure Git tracks this directory ( git add new/path/to ).

Can you make changes to a git submodule?

The submodule is just a separate repository. If you want to make changes to it, you should make the changes in its repository and push them like in a regular Git repository (just execute the git commands in the submodule's directory).


1 Answers

This apparently is very much dependent on the version of git you are using.

  1. If present, change the url entry in the [submodule "<dirname>"] section of the .gitmodules file.
  2. If present, change the url entry in the [submodule "<dirname>"] section of the .git/config file.
  3. Change the url in the configuration of the submodule itself. The location of the config file is version dependent. Older versions had it in <dirname>/.git/config, newer ones in .git/modules/<dirname>/config. However, you can always use below command:
cd <dirname> git config remote.origin.url <new_url> 
like image 72
Michael Wild Avatar answered Sep 19 '22 21:09

Michael Wild