#!/bin/sh m=$(git-rev-parse "master^0") for branch do b=$(git-rev-parse "$branch^0") case "$(git-merge-base --all "$b" "$m")" in "$m") echo >&2 "$branch: up to date" continue ;; esac git-show-branch "$branch" master while : do echo -n >&2 "Rebase $branch [Y/n]? " read ans case "$ans" in [Yy]*) git rebase master "$branch" || exit break ;; [Nn]*) echo >&2 "Not rebasing $branch" break ;; *) echo >&2 "Sorry, I could not hear you" ;; esac done done