透過 Script 搭配 GIT 的指令,一次更新所有的 Repository,免去一個一個去更新
最近要管理的專案越來越多,有些時候一兩天沒有看,同仁們就對程式有不少的異動,因此就需要將每個 Repository 給更新,順便 Review 一下看大家修改了那些程式碼。
但每次開啟 SourceTree,就要花好幾個步驟才能一個一個去更新,因此想說看是否有偷懶的方式來簡化,剛好看到網路上有人透過 Bash Script 來做一些處理,因此就依樣畫葫蘆,將指令給修改一下,這樣以後只要點擊 Script,就可以一次把所有目錄下的 Repository 給更新,對我這種懶人來說這就方便取多了。
程式碼如下所示,我將該檔案命名為 update_git_repos.sh
#!/bin/bash
# store the current dir
CUR_DIR=$(pwd)
# Let the person running the script know what's going on.
echo "Pulling in latest changes for all repositories..."
# Find all git repositories and update it to the master latest revision
for i in $(find . -name ".git" | cut -c 3-); do
echo "";
echo $i;
# We have to go to the .git parent directory to call the pull command
cd "$i";
cd ..;
CUR_BRANCH=`git branch | grep '*'| tr '* ' ' '`
# finally pull
git branch | tr '*' ' ' | while read -r branch ; do git checkout $branch ; git fetch --all; git pull --all; done
git checkout $CUR_BRANCH
# lets get back to the CUR_DIR
cd $CUR_DIR
done
echo "Complete!"
這樣以後要更新,我只要點擊這個 Script,就會將目前目錄下,所有的 git 的 Repository 都更新。
有需要的朋友可以參考看看囉。