Pull Latest Changes for All Git Submodules

Better Stack Team
Updated on June 24, 2024

To pull the latest changes for all Git submodules in a repository, you can use the following commands:

 
git submodule update --remote --recursive

This command updates each submodule to the latest commit on its respective branch. The --remote flag tells Git to fetch changes from the remote repository, and the --recursive flag ensures that nested submodules are also updated recursively.

Note:

  • Before running this command, ensure that you've initialized and updated all submodules in your repository using git submodule init and git submodule update.
  • Be cautious when updating submodules, especially if you have uncommitted changes in them. Git may not be able to update the submodule if it has uncommitted changes.
  • After pulling changes for submodules, you may need to commit the updated submodule references in the parent repository to track the new submodule commits.
  • If you want to pull changes for a specific submodule, you can navigate to its directory and use regular Git commands (git pull, git fetch, etc.) as you would for a standalone repository.
Got an article suggestion? Let us know
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.