Я использую это руководство для показа имени ответвления в терминале гнома (Ubuntu 15.10) при работе в репозитории мерзавца. На основе вышеупомянутого я теперь имею ниже в моем ~/.bashrc файл:
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
...
# Add git branch if its present to PS1
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt
В результате я теперь добираюсь:
таким образом, это работает. Но почему имеет окраска моего user@host удаленный? И я также ожидал бы, что имя ответвления должно быть окрашено. Прежде чем это было похоже на это:
ОБНОВЛЕНИЕ: Я теперь судил это руководство вместо этого:
https://coderwall.com/p/fasnya/add-git-branch-name-to-bash-prompt
добавление этого к .bashrc:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
и это работает:
Заметьте в .bashrc, у меня также есть этот (значение по умолчанию):
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
Я должен все же найти причину, почему тот отрывок дает корректный результат, и другая версия не делает. Какой-либо вход на этом?
Вот версия моего .bashrc, которому включили старый отрывок, который не работает:
Этот фрагмент:
# Add git branch if its present to PS1
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
предназначен для замены определение приглашения по умолчанию:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
которое заканчивается на:
unset color_prompt force_color_prompt
.bashrc
, который вы опубликовали , показывает, что вы добавляете его после определения приглашения по умолчанию и unset color_prompt force_color_prompt
(строка # 64).
Либо замените определение приглашения по умолчанию на фрагмент, либо оставьте ~ / .bashrc
как есть и прокомментируйте определение приглашения по умолчанию вместе с unset color_prompt force_color_prompt
в строке № 64:
Таким образом, часть вашего .bashrc может выглядеть как
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\] $(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
# THE SIX LINES BELOW are the default prompt and the unset (which were in the original .bashrc)
#if [ "$color_prompt" = yes ]; then
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_prompt force_color_prompt
Добавьте эти строки в свой файл ~ / .bashrc
# Show git branch name
force_color_prompt=yes
color_prompt=yes
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt
Перезагрузите файл .bashrc с помощью этой команды:
$ source ~/.bashrc
А пока я следил за этим https://gist.github.com/eliotsykes/47516b877f5a4f7cd52f и работает, пока он мне нравится, хотя я планирую настроить его дальше.
В Терминале
mkdir ~ / .bash
Скопируйте необработанный файл
git-prompt.sh
из git contrib в~ / .bash
каталог: https://github.com/git/git/blob/master/contrib/completion/git-prompt.shВнутри
~ / .bashrc
или~ / .bash_profile
(выберите файл, в котором вы обычно помещайте любые настройки / настройки bash), добавьте строки:source ~ / .bash / git-prompt.sh # Показать имя ветки git в командной строке export GIT_PS1_SHOWCOLORHINTS = true # Возможность для git-prompt.sh отображать имя ветки в цвете # Терминальная подсказка: # Включите ветку git, используйте PROMPT_COMMAND (не PS1) для получения цветного вывода (подробнее см. Git-prompt.sh) export PROMPT_COMMAND = '__ git_ps1 "\ w" "\ n \\\ $"' # Ветка Git (полагается на git-prompt.sh)
Пока вы находитесь внутри репозитория git, в командной строке Bash теперь должно отображаться цвет текущей ветки git означает, что она не зафиксирована изменения.
Pergi ke folder rumah
klik Ctrl + h untuk menunjukkan fail tersembunyi.
Buka. bashrc
fail dan pada akhirnya tampal yang berikutnya:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
Sekiranya anda mempunyai terminal dibuka, tutup dan buka semula. Nikmati !!
Моя проблема заключалась в том, что я не включил параметр
Выполнить команду в качестве оболочки входа в
Терминал → Править → Настройки профиля → Команда
замените
parse_git_branch
на
parse_git_branch 2>/dev/null
в определении PS1 и живите долго и счастливо.
Быстрый взлом:
~ / .bashrc
: parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u@\h \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]$ "
~ / .bashrc
: Подробнее: https://medium.com/@thucnc/how-to-show-current-git-branch-with-colors-in-bash-prompt-380d05a24745
sudo vi .bashrc
git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\[\033[1;36m\]\u\[\033[1;31m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;31m\]\$\[\033[0m\]\$(git_branch)\$ "
source .bashrc
Добавьте строки ниже в ~ / .bashrc
:
export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWUNTRACKEDFILES=true
export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '
Зачем использовать sed
? как в ...
git ветка 2> / dev / null | sed -e '/ ^ [^ ] / d' -e 's / (. *) / (\ 1) /'
Намного проще использовать:
git branch - show-current
Он выводит текущую ветку и никаких дополнительных символов!