#!/bin/sh if [ "$1" == "-l" ] then ls .git/refs/heads elif [ "x$1" != "x" ] then if [ ! -f .git/refs/heads/$1 ] then echo Branch $1 not found. exit 1 fi diff=$(git-diff-cache -r -p HEAD) if [ "x$diff" != "x" ] then echo "Commit pending changes first" exit 1 fi ( cd .git && rm -f HEAD && ln -s refs/heads/$1 HEAD ) git-read-tree -m HEAD && git-checkout-cache -q -f -u -a else readlink .git/HEAD fi