Brian Campbell [off-list ref] writes:
+current_branch()
+{
+ echo "$(git symbolic-ref HEAD | sed -e 's#^refs/heads/##' -e 's#^refs/top-bases/##')"
+}
Two micronits.
- what happens when you are on a detached HEAD?
- You will be utterly confused by a local branch whose name is
"refs/top-bases/foo"
To fix these, you might want to do something like:
if head_=$(git symbolic-ref HEAD)
then
case "$head_" in
refs/heads/*)
echo "${head_#refs/heads/}"
;;
refs/top-bases/*)
echo "${head_#refs/top-bases/}"
;;
*)
echo "$head_"
;;
esac
else
whatever you want to do on a detached HEAD
fi