Skip to content

Instantly share code, notes, and snippets.

@Sannis
Forked from henrik/.bashrc
Created November 5, 2010 01:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sannis/663506 to your computer and use it in GitHub Desktop.
Save Sannis/663506 to your computer and use it in GitHub Desktop.
# http://henrik.nyh.se/2008/12/git-dirty-prompt
# http://www.simplisticcomplexity.com/2008/03/13/show-your-git-branch-name-in-your-prompt/
# username@Machine ~/dev/dir[master]$ # clean working directory
# username@Machine ~/dev/dir[master*]$ # dirty working directory
function parse_git_branch_name {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1/"
}
function parse_git_push_queue {
git log --no-color --oneline origin/$(parse_git_branch_name)...$(parse_git_branch_name) 2> /dev/null | wc -l | grep -v -P "^0$" | sed -e "s/\(.*\)/\(+\1\)/"
}
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function git_prompt_suffix {
parse_git_branch_name | sed -e "s/\(.*\)/ \(\1$(parse_git_dirty)$(parse_git_push_queue)\)/"
}
export PS1='$(ppwd \l)\u@\h:\w$(git_prompt_suffix)> '
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment