Abstract
Let's assume that on Windows, you put your development projects under a main or common directory, e.g., 'development', and all of these projects are local Git repositories.
The repetitive problem: めんどくさい mendokusai - a hassle
It gets tedious, if you have to navigate into every directory and execute 'git remote update'.
you@your-pc MINGW64 /d/developments
$ ls -1
foo-bar-backend/
foo-bar-db/
foo-bar-frontend/
Solution: a helper script
Using Git Bash on Windows, I recommend an executable bash-like helper script to navigate through all these projects and be done with it.
Write a helper script
Say, this script is named git_remote_update.bash:
#!/bin/bash.exe
echo
echo "Going into every directory here."
echo
for x in *;
do
if [ -d "${x}" ]
then
if [ -e "${x}"/.git ]
then
cd "${x}"
echo "${x}"
echo "======================"
echo "Calling git remote update ..."
git remote update
echo
echo "Calling git status ..."
git status
echo
cd ../
fi
fi
done
Set the file permission
Place this helper script in a dedicated directory, e.g., helperScriptsWindows, and change its permission so:
you@your-pc MINGW64 /d/helperScriptsWindows
$ chmod 755 git_remote_update.bash
$ ls -la
-rwxr-xr-x 1 you 197609 434 Mar 17 2018 git_remote_v.bash*
Include the directory into Path
- Open the Windows Control Panel.
- Navigate to System and Security => System => Advanced system settings => Environment Variables => System variables.
- Click Path => New. Add the absolute path to the directory helperScriptsWindows. Done.
Check the PATH
You should be able to see the absolute path to the directory of your helper scripts is included:
you@your-pc MINGW64 ~
$ echo $PATH
Helper script usage
The script git_remote_update.bash should be already 'registered', and with few typing efforts, it's callable in the terminal:
you@your-pc MINGW64 /d/developments
$ git_remote_update.bash
Going into every directory here.
foo-bar-backend
======================
Calling git remote update ...
Fetching origin
Calling git status ...
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
foo-bar-db
======================
Calling git remote update ...
Fetching origin
Calling git status ...
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
foo-bar-frontend
======================
Calling git remote update ...
Fetching origin
Calling git status ...
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
Have fun.
Top comments (0)