¿Cómo puedo tener un shell para git como en Windows?

9

Cuando uso Windows, el shell (incluso un shell estándar de Windows) muestra información básica sobre el repositorio git cuando se encuentra en un repositorio git. Cosas como la rama activa y tal vez algunos códigos de colores.

¿Hay alguna manera de tener lo mismo en Ubuntu?

Nicola Peluchetti
fuente
¿Qué versión de git tienes instalada en Windows? ¿Qué comandos ejecutas para obtener esta información? ¿Has probado esos comandos con el git-corepaquete instalado?
jackweirdy
En git tengo la última versión, pero simplemente si uso la línea de comando y estoy dentro de un repositorio de git, veo el nombre de la rama activa
Nicola Peluchetti

Respuestas:

4

El shell de Windows Git, que en realidad es solo bash, establece el indicador $PS1en una cadena larga que incluye $(__git_ps1).

__git_ps1 se define como una función, de casi 100 líneas de largo, que imprime el nombre de la rama actual entre paréntesis.

/etc/profile(que es C:\Program Files (x86)\Git\etc\profile, al menos en mi sistema)) invoca /etc/git-completion.bash, que define la __git_ps1función, establece $PS1, define algunas terminaciones específicas de git, entre otras cosas.

El git-completion.bashutilizado por Git Bash parece estar basado en esto .

Keith Thompson
fuente
1
Entonces, ¿qué debo hacer exactamente para activar esto en uBuntu? :) Lo siento pero soy nuevo.
Nicola Peluchetti
Vaya al directorio de inicio y escriba el comando en la terminal como "gedit .baschr" y se le pedirá que edite el archivo .baschr. Pero asegúrese de tener una copia original en un directorio diferente por seguridad.
Rahal Kanishka
4

Para el color:

git config --global color.ui true
Justin Seiter
fuente
1

Si usa zsh como shell, puede encontrar útiles mis archivos de configuración . Intenta source prompt/blockyver cómo se ve el indicador en un repositorio de Git.

pconley
fuente
1
  • Cómo evitar que escapen los colores del indicador de bash tiene un ejemplo. Puede copiarlo de la respuesta y luego usar gedit para pegarlo en la parte inferior del archivo .bashrc en su directorio de inicio (haciendo una copia de seguridad, primero, por supuesto).

  • Si el archivo .bashrc que Keith menciona en su respuesta es parte de git, tendrá licencia con GPL2, por lo que también debe tener la libertad de pegarlo en su archivo .bashrc. Tendrá que tomar el archivo /etc/git-completion.bash e instalarlo en algún lugar también, y hacer que su nuevo .bashrc lo haga referencia.

  • Aquí hay algo más que puede pegar y probar de Arturo Fernández en http://www.bsnux.com/recipes/how-display-you-current-git-branch-prompt.html

 # Mostrando git branch dentro de prompt
 función parse_git_branch {
   git branch --no-color 2> / dev / null | sed -e '/ ^ [^ *] / d' -e 's / * \ (. * \) / (\ 1) /'
 }

 función proml {
   VERDE local = "\ [\ 033 [0; 32m \]"
   BLANCO local = "\ [\ 033 [0; 37m \]"

 PS1 = "[\ u @ \ h \ w $ VERDE \ $ (parse_git_branch)] $ BLANCO \ $"
 PS2 = '>'
 PS4 = '+'
}
proml
John S Gruber
fuente