I don't understand from the documentation what does git submodule sync
do. Please explain.
Git submodules allow you to keep a git repository as a subdirectory of another git repository. Git submodules are simply a reference to another repository at a particular snapshot in time. Git submodules enable a Git repository to incorporate and track version history of external code.
Git submodules may look powerful or cool upfront, but for all the reasons above it is a bad idea to share code using submodules, especially when the code changes frequently. It will be much worse when you have more and more developers working on the same repos.
git submodule update --remote will only update the branch registered in the . gitmodule , and by default, you will end up with a detached HEAD, unless --rebase or --merge is specified or the key submodule.
Git stores information about submodules in two places. The first is in a file called .gitmodules
, which is checked in to the git repository. Changes to this file are what get propagated to other repositories.
The other location is in .git/config
, and it's where git actually looks when performing most commands.
So imagine you've worked on a project for a while, and there's a submodule called foo
. Files for this submodule are checked out from some url, it doesn't really matter where. At some point, however, this url changes. Perhaps it changes so that the submodule is checked out from a different server, or a different path or whatever. When you update your repository your copy of the .gitmodules
file will be updated, but not your .git/config
file; you would still be checking out from the old url. When you want to start checking out from the new url, you would run git submodule sync
to copy the new configuration from .gitmodules
to .git/config
. Git doesn't do this automatically because you might have made your own changes to your configuration, and it wouldn't want to overwrite them.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With