Os dejamos un pequeño truco muy sencillo pero bastante útil para que nos muestre la información de GIT en BASH, en concreto en que rama estamos y si hay alguna modificación en los ficheros en la misma.

Está basado en ZSH, otro shell distinto a BASH que ofrece está funcionalidad. Si no quieres instalar un interprete de comandos nuevo, pero si tener esta información, sólo deberéis modificar el fichero .bashrc (recomendamos que hagáis una copia) de vuestro directorio de usuario, haciendo las siguiente modificaciones.

Instrucciones para mostrar la info de GIT en BASH

Añade estas dos funciones que nos extraerán la información de GIT del directorio actual y modifica la asignación del prompt:

# Funciones
are_there_git_changes() {
    status=$(git status 2> /dev/null)
    if [[ $status && ! $(echo $status | grep "clean") ]]; then
        echo "*"
    fi
}

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

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

	# Línea modificada
	PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(parse_git_branch)$(are_there_git_changes)\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Es muy útil al entrar en una carpeta saber que, hay un repositorio GIT inicializado, en que rama estás de este y si hay una modificación en al misma.

Ahora, cuando estéis en una consola dentro de una carpeta con un repositorio GIT inicializado, se mostrara la rama en y si hay cambios.

En la rama master sin cambios

user@machine:~/example_folder (master)$

En la rama master con cambios

user@machine:~/example_folder (master)*$

En la rama feature/new-change sin cambios

user@machine:~/example_folder (feature/new-change)$

Raül Torralba Adsuara

Software developer, organizer at @betabeersCAS, vim lover and artansoft's blogger.

rtorralba raul_torralba


Published