Cuando trabajo en un repositorio que está bajo el control de git, me gusta tener en el prompt del terminal cual es la rama de git que estoy usando:
¿Cómo se puede conseguir esto?. Originalmente usaba mi propio script en el $HOME/.profile:
parse_git_branch() { shopt -s checkwinsize if [ $(which git) ]; then branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' -e 's/^ +//g' -e 's/\n//g') /bin/echo -n "$branch" else echo -n "" fi } export -f parse_git_branch export PS1="\h:\w \u\[\033[33m\]\$(type -t parse_git_branch > /dev/null && parse_git_branch)\[\033[00m\]\$"
Básicamente este script lo que hace es comprobar si el git está en el path. Si ese es el caso, se comprueba si el directorio actual es un repositorio git, y llegado el caso, lo imprimimos. Esta función se llama desde el prompt, que se define en la variable PS1. Se usan códigos de control para que el path salga en amarillo.
Como curiosidad, uso export -f a la función para que esté disponible en otros shell.
Sin embargo, los desarrolladores de git han preparado un script que podemos usar directamente. El script se llama git-prompt y está en el código fuente del git. En OS X, por ejemplo está en /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh. Se puede obtener desde el repositorio de git (git-prompt.sh)
¿Como se configura?. Pues se copia el git-prompt.sh a nuestro $HOME como .git-prompt.sh, hacemos un source del fichero desde el .profile - si usamos bash - y modificamos el prompt
source ~/.git-prompt.sh export -f __git_ps1 export PS1='\u@\h:\W\[\033[33m\]$(__git_ps1 " (%s)")\[\033[00m\]\$'
No hay comentarios:
Publicar un comentario