pull latest commit for each branch
echo "CN所有分支已经为最新" > /tmp/git_upstream_status_delta_branches
#使用时需要更改项目路径
cd ~/Desktop/Projects/thecn.com/www/testcn
git fetch --prune origin
currentBranch=$(git rev-parse --abbrev-ref HEAD)
git for-each-ref --format="%(refname:short) %(upstream:short)" refs/heads | \
while read local remote
do
[ -z "$remote" ] && continue
git rev-list --left-right "${local}...${remote}" -- 2>/dev/null >/tmp/git_upstream_status_delta || continue
RIGHT_AHEAD=$(grep -c '^>' /tmp/git_upstream_status_delta)
if [ $RIGHT_AHEAD -gt 0 ]
then
echo "(behind $RIGHT_AHEAD) $local"
git checkout $local > /dev/null 2>&1
git pull
sleep 1
echo $local >>/tmp/git_upstream_status_delta_branches
fi
done
branches=$(cat /tmp/git_upstream_status_delta_branches)
git checkout $currentBranch
osascript -e '''on run argv
display dialog argv with icon caution
end run''' "$branches"