Skip to content

Instantly share code, notes, and snippets.

@dvrensk
Forked from djmitche/git-prompt.sh
Created February 27, 2009 08:30
Show Gist options
  • Save dvrensk/71359 to your computer and use it in GitHub Desktop.
Save dvrensk/71359 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
# djmitche: *edit* an existing PS1 to add the git information
# djmitche: only invoke 'git' and 'sed' once (each) for each prompt
# djmitche: display [NO BRANCH] when not on a branch (e.g., during rebase -i)
# dvrensk: added a semicolon after the sed q command to make OS X happy
function __git_info {
local status dirty branch
status=$(git status 2> /dev/null)
test -z "$status" && return
[[ "$status" =~ "working directory clean" ]] || dirty="*"
if [[ "$status" =~ "Not currently on any branch" ]]; then
branch="NO BRANCH";
else
branch=$(sed '1{s/.*branch \(.*\).*/\1/g;q;}' <<<"$status")
fi
echo " [$branch$dirty]"
}
# append git info to the current prompt
export PS1=`echo "$PS1"|sed 's/\\\\w/\\\\w$(__git_info)/g'`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment