As an example to make this clearer: $ cat .gitmodules [submodule "sub1"] path = sub1 url = git://example.com/sub1.git remote = remote1 branch = branch1 update-source = submodule-upstream update = rebase [submodule "sub2"] ... Means that `git submodule update sub1` will fetch remote1 and rebase the current sub1 checkout against the tip of remote1/branch1. The git://example.com/sub1.git URL is not actually used during this update. Presumably the user setup remote1 intentionally in the submodule, and wants to use the URL they've configured there. Perhaps I need to ammend my submodule update: add submodule..remote config option patch (#4) to adjust the remote that has it's URL changed by `sync`? I may also want to append some form of the following commit (from my submodule..active proposal): submodule add: configure existing submodule url if not set [1] Cheers, Trevor [1]: https://github.com/wking/git/commit/b045c16cffe6eb86c157a6c7397166a46e147442 -- This email may be signed or encrypted with GnuPG (http://www.gnupg.org). For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy