10.09.2009

Текущая ветка Git в строке запроса bash

Очень коротко. Нужно в строке запроса bash видеть текущую ветку. Должно выглядеть примерно так:

user@hostname:~/projects/repository(branch)$

Если текущая директория не находится внутри репозитария git, информация о ветке не выводится, строка запроса выглядит так же, как по умолчанию в Debian.

В ~/.bashrc или любое другое подходящее место добавить:

function parse_git_branch {
    ref=$(git symbolic-ref HEAD 2> /dev/null) || return
    echo "("${ref#refs/heads/}")"
}
PS1="\u@\h\:\w\$(parse_git_branch)\$ "

Версия с цветовым выделением:

function parse_git_branch {
    ref=$(git symbolic-ref HEAD 2> /dev/null) || return
    echo "("${ref#refs/heads/}")"
}
PS1="\[\033[00;32m\]\u@\h\[\033[00m\]:\[\033[00;34m\]\w\[\033[00;31m\]\$(parse_git_branch)\[\033[00m\]\$ "

Выглядеть будет примерно так:

user@hostname:~/projects/repository(branch)$

Подсмотрено здесь и здесь.

Комментарии

12.10.09 16:51 Носеевич Георгий комментирует:

Клево, заюзал.
Спасибо.