Статус Git-Branch [dубликат]

Я использую это руководство для отображения имени ветки в терминале gnome (Ubuntu 15.10) при работе в репозитории git. Основываясь на приведенном выше, теперь у меня есть следующее в файле ~ / .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

В результате я теперь получаю:

это руководство

, поэтому оно работает. Но почему была удалена окраска моего пользователя @ host? И я также ожидал, что название ветки должно быть окрашено. Прежде чем это выглядело так:

UPDATE: теперь я попробовал это руководство:

добавив это в .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\] $ "

и работает:

enter image description here [!d11]

Обратите внимание на .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, у которого включен старый фрагмент, который не работает:

enter image description here [!d11]

53
задан 7 February 2016 в 12:39

10 ответов

Этот фрагмент:

# 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

73
ответ дан 18 July 2018 в 07:31

Этот фрагмент:

# 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

73
ответ дан 24 July 2018 в 18:49

замените

parse_git_branch

на

parse_git_branch 2>/dev/null

в вашем определении PS1 и живите долго и счастливо.

0
ответ дан 18 July 2018 в 07:31

На данный момент я выполнил этот 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 # Show git branch name at command prompt export GIT_PS1_SHOWCOLORHINTS=true # Option for git-prompt.sh to show branch name in color # Terminal Prompt: # Include git branch, use PROMPT_COMMAND (not PS1) to get color output (see git-prompt.sh for more) export PROMPT_COMMAND='__git_ps1 "\w" "\n\\\$ "' # Git branch (relies on git-prompt.sh) Пока вы находитесь внутри репозитория git, ваша подсказка Bash теперь должна отображать текущую ветку git в цвете, обозначающую, если его получили незафиксированные изменения.
5
ответ дан 18 July 2018 в 07:31

Моя проблема заключалась в том, что я не включил опцию

Запустить команду в качестве оболочки входа в

Терминал → Изменить → Настройки профиля → Команда

0
ответ дан 18 July 2018 в 07:31
Ubuntu: Show your branch name on your terminal

Добавьте эти строки в файл ~ / .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
4
ответ дан 18 July 2018 в 07:31

замените

parse_git_branch

на

parse_git_branch 2>/dev/null

в вашем определении PS1 и живите долго и счастливо.

0
ответ дан 24 July 2018 в 18:49

На данный момент я выполнил этот 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 # Show git branch name at command prompt export GIT_PS1_SHOWCOLORHINTS=true # Option for git-prompt.sh to show branch name in color # Terminal Prompt: # Include git branch, use PROMPT_COMMAND (not PS1) to get color output (see git-prompt.sh for more) export PROMPT_COMMAND='__git_ps1 "\w" "\n\\\$ "' # Git branch (relies on git-prompt.sh) Пока вы находитесь внутри репозитория git, ваша подсказка Bash теперь должна отображать текущую ветку git в цвете, обозначающую, если его получили незафиксированные изменения.
5
ответ дан 24 July 2018 в 18:49

Моя проблема заключалась в том, что я не включил опцию

Запустить команду в качестве оболочки входа в

Терминал → Изменить → Настройки профиля → Команда

0
ответ дан 24 July 2018 в 18:49
Ubuntu: Show your branch name on your terminal

Добавьте эти строки в файл ~ / .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
4
ответ дан 24 July 2018 в 18:49

Другие вопросы по тегам:

Похожие вопросы: