#!/usr/bin/env bash branch=$1 test -z $branch && echo "branch required." 1>&2 && exit 1 changes=`git status --porcelain` clean() { git symbolic-ref HEAD refs/heads/$branch rm .git/index git clean -fdx } if [ ! -z "$changes" ]; then read -p "All untracked changes will be lost. Continue [y/N]? " res case $res in [Yy]* ) ;; * ) exit 0;; esac fi clean