__git_dirty() { if [ "$(git status 2> /dev/null | tail -1)" != "nothing to commit, working tree clean" ]; then echo "*" fi } __git_branch() { branch=$(git branch 2>/dev/null | grep "*" | sed -e 's/\*\ //') || return if [ "$branch" == *"detached"* ]; then branch=$(echo "$branch" | sed -e 's/.*at\ //' | sed -e 's/)//') fi echo "$branch" } __git_prompt() { branch=$(__git_branch) if [ ! -z "$branch" ]; then echo "$branch$(__git_dirty)" else echo "NONE" fi } __git_history() { echo "$(git log --oneline | cut -d ' ' -f 1)" } tagpush() { if [ -z "$1" ]; then echo "Usage: tagpush " return fi git tag "$1" # for every remote for REMOTE in $(git remote) ; do # push current branch and newly created tag git push "$REMOTE" $(git branch | grep "*" | sed 's/\* //') "$1" done }