Skip to content

Instantly share code, notes, and snippets.

@trueskawka
Last active October 28, 2019 22:38
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 trueskawka/aab826ea75d7219790df92fba8bb8e47 to your computer and use it in GitHub Desktop.
Save trueskawka/aab826ea75d7219790df92fba8bb8e47 to your computer and use it in GitHub Desktop.
git prompt - bash
# prompt
## git dirty "*"
function parse_git_dirty {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] && echo "*"
}
## git added
function parse_added {
local added=`expr $(git status --porcelain 2>/dev/null| grep "^[A|M]" | wc -l)`
if [ "$added" != "0" ]
then
echo " +$added"
fi
}
## git unadded
function parse_unadded {
local unadded=`expr $(git status --porcelain 2>/dev/null| grep "^ [M|A]" | wc -l)`
if [ "$unadded" != "0" ]
then
echo " ±$unadded"
fi
}
## git untracked
function parse_untracked {
local untracked=`expr $(git status --porcelain 2>/dev/null| grep "?" | wc -l)`
if [ "$untracked" != "0" ]
then
echo " ?$untracked"
fi
}
## git deleted
function parse_deleted {
local deleted=`expr $(git status --porcelain 2>/dev/null| grep "D" | wc -l)`
if [ "$deleted" != "0" ]
then
echo " !$deleted"
fi
}
## git branch and combine git prompt
git_prompt() {
local ref=$(git branch 2>/dev/null | sed -n '/\* /s///p')
if [ "$ref" != "" ]
then
echo " ($ref$(parse_git_dirty)$(parse_added)$(parse_unadded)$(parse_untracked)$(parse_deleted)) "
fi
}
## prompt variable
export PS1="\[\033[0;31m\]\w 🐧 \[\033[0;95m\]\$(git_prompt)\[\033[0m\] \[\033[0m\]"
# bash completion
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
alias reload='source ~/.bashrc'
alias ll='ls -la'
alias .='cd ..'
alias .2='cd ../..'
alias .3='cd ../../..'
alias .4='cd ../../../..'
alias .5='cd ../../../../..'
alias gs='git status'
alias gl='git log'
alias gall='git add --all'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment