Linux: bash — добавить отображение бранча

Автор: | 11/02/2016
 

terminalВо время работы с репозиториями — очень удобным может быть отображение в строке приглашения имени текущего бранча, над которым выполняется работа.

Редактируем файл ~/.bashrc, и добавляем пару функций:

...
parse_git_dirty () {
  [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}

parse_git_branch () {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
...

Старая строка у меня выглядела так:

...
PS1='\t \[[\e[0;32m\]\u\[\e[m\]@\e[0;37m\]\h\[\e[m\] \[\e[1;34m\]\w\[\e[m\]]\[\e[0;31m\] \$\[\e[m\]\[\e[0;37m\] '
...

bash_ps1

Обновляем вывод, добавим отображение бранча, если текущая директория является репозиторием:

...
PS1='\t \[[\e[0;32m\]\u\[\e[m\]@\e[0;37m\]\h\[\e[m\] \[\e[1;34m\]\w\[\e[m\]]\[\e[0;31m\] \[\e[32;44m\]$(parse_git_branch)\[\e[0;31m\] \$\[\e[m\]\[\e[0;37m\] '
...

Обновляем, проверяем:

$ . ~/.bashrc

bash_ps2

Готово.