#!/bin/sh branch_name=$(git symbolic-ref --quiet HEAD) if [[ $? -ne 0 ]] ; then echo "Not on a branch" exit 1 fi branch_name=${branch_name/refs\/heads\//} git fetch if [[ $? -ne 0 ]] ; then exit $? fi # rebase-p-i stops if nothing to do, even a ff, so do a non-i-p if needed if test "$(git rev-parse HEAD)" = "$(git merge-base HEAD origin/$branch_name)" ; then git rebase "origin/$branch_name" else GIT_EDITOR=: git rebase -p -i "origin/$branch_name" fi