Como mostro o ramo git com cores no prompt do Bash?

61

Estou usando o este orientar para mostrar o nome da ramificação no terminal gnome (Ubuntu 15.10) ao trabalhar em um repositório git. Com base no acima, agora tenho o seguinte no meu arquivo ~ / .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/* \(.*\)/()/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[01;31m\]$(parse_git_branch)\[3[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt

Como resultado, agora obtenho:

entãofunciona.Masporqueacoloraçãodomeuusuário@hostfoiremovida?Etambémesperoqueonomedaramificaçãosejacolorido.Antesdisso,pareciaassim:

ATUALIZAÇÃO:Eujátenteiesteguia:

link

adicionando isso ao .bashrc:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'
}
export PS1="\u@\h \[3[32m\]\w\[3[33m\]\$(parse_git_branch)\[3[00m\] $ "

e isso funciona:

Avisoem.bashrcEutambémtenhoisso(padrão):

#uncommentforacoloredprompt,iftheterminalhasthecapability;turned#offbydefaulttonotdistracttheuser:thefocusinaterminalwindow#shouldbeontheoutputofcommands,notontheprompt#force_color_prompt=yes

Aindanãoencontreiomotivopeloqualosnippetforneceoresultadocorretoeaoutraversãonão.Qualquerentradasobreisso?

Aquiestáaversãodomeu.bashrcquetemosnippetantigoativadoquenãofunciona:

link

    
por u123 07.02.2016 / 09:07

6 respostas

82

Este snippet:

# Add git branch if its present to PS1

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/()/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[01;31m\]$(parse_git_branch)\[3[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi

Destina-se a substituir a definição de prompt padrão:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Que termina com:

unset color_prompt force_color_prompt

O .bashrc que você postou mostra que você está adicionando após a definição de prompt padrão e unset color_prompt force_color_prompt (linha 64).

Substitua a definição de prompt padrão pelo snippet ou deixe seu ~/.bashrc como está e comente a definição de prompt padrão junto com unset color_prompt force_color_prompt na linha # 64:

Então, parte do seu .bashrc pode parecer

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/()/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[01;31m\] $(parse_git_branch)\[3[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)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]\$ '
#else
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_prompt force_color_prompt

    
por kos 07.02.2016 / 09:30
11
Ubuntu: Show your branch name on your terminal

Adicione estas linhas no seu arquivo ~ / .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/* \(.*\)/()/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[01;31m\]$(parse_git_branch)\[3[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt
    
por Sam 16.08.2017 / 11:23
5

Por enquanto, eu segui isso link e funcionando, até agora, embora eu esteja planejando personalizá-lo ainda mais.

% bl0ck_qu0te%     
por ifelsemonkey 08.03.2017 / 00:11
1

Ir para pasta pessoal

clique em Ctrl + h para mostrar os arquivos ocultos.

Abra o arquivo bashrc e, no final, cole o seguinte:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'
}
export PS1="\u@\h \[3[32m\]\w\[3[33m\]\$(parse_git_branch)\[3[00m\] $ "

Caso você tenha seu terminal aberto, feche e abra novamente. Aproveite !!

    
por webtechnelson 13.10.2018 / 23:59
0

Meu problema é que eu não habilitei a opção

Execute o comando como um shell de login em

Terminal Editar Preferências de perfil Comando

    
por Joker 26.09.2017 / 13:15
0

substituir

parse_git_branch

com

parse_git_branch 2>/dev/null

na sua definição de PS1 e viva feliz para sempre.

    
por andrej 18.05.2018 / 12:19