Git Submodule Update Vs Git Submodule Sync
git documentation doesn't make it at all clear what the difference is between a
git submodule update and a
git submodule sync is. I'm also not finding any help out on the web. Can someone help me out with what the difference is here?
update Update the registered submodules to match what the superproject expects by cloning missing submodules and updating the working tree of the submodules. The "updating" can be done in several ways depending on command line options and the value of submodule.<name>.update configuration variable.
sync Synchronizes submodules' remote URL configuration setting to the value specified in .gitmodules. It will only affect those submodules which already have a URL entry in .git/config (that is the case when they are initialized or freshly added). This is useful when submodule URLs change upstream and you need to update your local repositories accordingly.
For reference, I'm using the git client version 2.11.0
update is basically doing
git pull in each submodule (except without a branch, since the main repo specifies a commit directly).
The tricky one is
sync. Imagine you clone a project with submodules, then later the upstream project changes one of the submodules to point to a different URL.
Your local copy of the submodule will still point to the old URL, since git never allows remote repositories to force a change to local configuration. You need to run
git submodule sync to apply the remote repo's configuration to your local submodule repos.
Note also that, if you are making changes to the submodules, you might want the URLs to mismatch even if the upstream never changed them ... but using multiple remote URLs is probably a better idea for that case.
- → Authenticate with a cookie using laravel 5.1 and jwt
- → Finding a specific GitLab tag from PHP
- → React: How to publish page on server using React-starter-kit
- → babel-loader, webpack, ES2015 modules: "Element type is invalid"
- → Create a function-attribute of a function, which is, in its turn, a method of an object literal
- → Model Validation in laravel 5.1 not working
- → GIT fatal: loose object
- → Laravel validation required rule not working
- → Axios array map callback
- → Where does this `webpack://` come from for `webpack-dev-middleware`?
- → error when trying to modify project in laravel forge
- → GitHub Pages and Jekyll content duplication and SEO issues
- → Use Laravel repositories with Datatables