Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Update all git repositories under a base directory
# store the current dir
# Let the person running the script know what's going on.
echo "\n\033[1mPulling in latest changes for all repositories...\033[0m\n"
# Find all git repositories and update it to the master latest revision
for i in $(find . -name ".git" | cut -c 3-); do
echo "";
echo "\033[33m"+$i+"\033[0m";
# We have to go to the .git parent directory to call the pull command
cd "$i";
cd ..;
# finally pull
git pull origin master;
# lets get back to the CUR_DIR
echo "\n\033[32mComplete!\033[0m\n"
Copy link

NorkzYT commented Jun 15, 2022

How will this work in visual studio code with a workspace setup? I would like to be able to do a pull-from in all the repositories in the workspace, followed by a syncronization, except if there is a merge conflict.

Did you find a solution to this or an alternative?

Copy link

Here is a solution for MacOSX:
Im running that from my root repo folder ( no .git in that folder )

/usr/bin/find . -maxdepth 1 -type d -print | parallel --eta 'echo {} && git -C {} pull'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment