I have a Git project which has a submodule. The url of the submodule was recently changed. I have changed the .gitmodules
and config file to point to the new url. Should I commit the .gitmodules
file so that the next time I checkout my project and do git submodule update --init --recursive
I won't get an error?
Yes, after editing .gitmodules
, you should commit and push those changes, so the change becomes available to everyone. Otherwise, only your local submodule would point to the new URL and everyone else would still the old URL.
However, you don't need to commit to change the URL locally, git
will also switch to the new URL if you haven't committed the change.
Nobody speaks about how and what files one has to commit
No need to change a file, sync/commit: this is now done for you in one new command.
With Git 2.25 (Q1 2020), "git submodule
" learned a subcommand "set-url
".
See commit 26b0610 (29 Oct 2019) by Denton Liu (Denton-L
).
(Merged by Junio C Hamano -- gitster
-- in commit 99c4ff1, 10 Dec 2019)
submodule
: teach set-url subcommandSigned-off-by: Denton Liu
Currently, in the event that a submodule's upstream URL changes, users have to manually alter the URL in the
.gitmodules
file then rungit submodule
sync
.
Let's make that process easier.Teach submodule the
set-url
subcommand which will automatically change thesubmodule.$name.url
property in the.gitmodules
file and then rungit submodule
sync
to complete the process.
The git submodule
documentation now includes:
set-url [--] <path> <newurl>:
Sets the URL of the specified submodule to
<newurl>
.
Then, it will automatically synchronize the submodule's new remote URL configuration.
Yes, after editing .gitmodules
, you should commit and push those changes, so the change becomes available to everyone. Otherwise, only your local submodule would point to the new URL and everyone else would still the old URL.
However, you don't need to commit to change the URL locally, git
will also switch to the new URL if you haven't committed the change.
© 2022 - 2024 — McMap. All rights reserved.
.gitmodules
file to update the URL and then rungit submodule sync
to reflect that change to the superproject and your working copy." If this doesn't answer your question, please clarify the question and explain what exactly the problem is. – Oberammergau