Como posso ter um shell para git como no Windows?

8

Quando uso o Windows, o shell (até mesmo um shell padrão do Windows) mostra informações básicas sobre o repositório git quando você está em um repositório git. Coisas como o ramo ativo e talvez algum código de cores.

Existe uma maneira de ter o mesmo no Ubuntu?

    
por Nicola Peluchetti 25.07.2012 / 22:16

4 respostas

4

O shell do Windows Git, que é realmente apenas bash, define o prompt $PS1 como uma string longa que inclui $(__git_ps1) .

__git_ps1 é definido como uma função, com quase 100 linhas de comprimento, que imprime o nome da ramificação atual entre parênteses.

/etc/profile (que é C:\Program Files (x86)\Git\etc\profile , pelo menos no meu sistema) invoca /etc/git-completion.bash , que define a função __git_ps1 , define $PS1 , define algumas conclusões específicas de git, entre outras coisas. / p>

O git-completion.bash usado pelo Git Bash parece ser baseado em este .

    
por Keith Thompson 25.07.2012 / 22:43
4

Para cor:

git config --global color.ui true
    
por Justin Seiter 25.07.2012 / 23:24
1

Se você usa zsh como seu shell, você pode achar útil meus arquivos de configuração . Tente source prompt/blocky para ver como é o prompt em um repositório Git.

    
por pconley 26.07.2012 / 03:44
1
  • Como impedir que cores de prompt do bash escapem tem um exemplo. Você pode copiá-lo da resposta e, em seguida, usar o gedit para colá-lo na parte inferior do arquivo .bashrc em seu diretório pessoal (fazendo um backup, primeiro, é claro).

  • Se o arquivo .bashrc mencionado por Keith em sua resposta for parte do git, ele será licenciado com a GPL2, então você deve estar livre para passá-lo para o seu arquivo .bashrc também. Você terá que pegar o arquivo /etc/git-completion.bash e instalá-lo em algum lugar também, e ter sua nova referência .bashrc.

  • Aqui está outra coisa que você pode colar e experimentar de Arturo Fernandez em link

 # Displaying git branch inside prompt
 function parse_git_branch {
   git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/()/'
 }

 function proml {
   local       GREEN="\[3[0;32m\]"
   local       WHITE="\[3[0;37m\]"

 PS1="[\u@\h \w$GREEN\$(parse_git_branch)]$WHITE\$ "
 PS2='> '
 PS4='+ '
}
proml
    
por John S Gruber 13.08.2012 / 02:10