Created
October 14, 2011 15:04
-
-
Save douglas/1287372 to your computer and use it in GitHub Desktop.
Update all git repositories under a base directory
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# store the current dir | |
CUR_DIR=$(pwd) | |
# 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 | |
cd $CUR_DIR | |
done | |
echo "\n\033[32mComplete!\033[0m\n" |
Here is a solution for MacOSX:
Im running that from my root repo folder ( no .git in that folder )
~/Documents/repos/
~/Documents/repos/repo1
~/Documents/repos/repo2
/usr/bin/find . -maxdepth 1 -type d -print | parallel --eta 'echo {} && git -C {} pull'
Hello folks!
New year and just had to use it again - thanks for letting me know about GNU parallel
=)
About the license, it is public domain - do whatever you want with it provided the gist is not used in a malicious context 👍
Hello folks!
New year and just had to use it again - thanks for letting me know about GNU
parallel
=)About the license, it is public domain - do whatever you want with it provided the gist is not used in a malicious context 👍
Thank you very much, Douglas!
Happy New Year! :)
Had to replace all echo
with printf
for ANSI color output to work on Fedora 41
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Did you find a solution to this or an alternative?