git rev-parse
でコミットハッシュを取得できる。
たとえば、リモートで変更があるかどうかによって、処理を分岐させることができる。
git remote
# origin
# upstream
git fetch --all --prune
if [ $(git rev-parse master) = $(git rev-parse upstream/master) ]; then
echo "Already up-to-date" >&2
exit 0;
fi
# heavy logic
git checkout master && git merge --ff upstream/master && git push
make