Bash PS1 tricks
Many of you know already about this feature, but some of you don’t so I wanted to share it with you. I just changed mine PS1 configuration in
~/.bashrc to look like this:
export GIT_PS1_SHOWDIRTYSTATE=1 export GIT_PS1_SHOWSTASHSTATE=1 export GIT_PS1_SHOWUNTRACKEDFILES=1 export PS1='\[\033[1;37m\][\[\033[1;32m\]\u\[\033[0m\]@\h\[\033[0m\] $? \[\033[1;34m\]\w\[\033[0;35m\]$(__git_ps1 " %s")\[\033[1;37m\]]\[\033[0m\] '
Take a look at the following picture to see how it works:
or check the video on youtube.
The number between
user@host and the current working directory is the exit status of the most recently executed command (or pipeline). This is great because you don’t have to type
echo $? everytime you want to find it out. The
__git_ps1 magic will print git branch name if you are inside of the git repository. Furthermore it will add special characters indicating the state of the repo:
% - untracked files present,
+ - new files added,
* - some tracked files changed,
$ - there is something in the stash (see
git stash --help). Pretty cool, right?