¿Cómo actualizo mi post para mostrar la twig actual de git en Linux?

Estoy desarrollando una secuencia de commands bash que agrega la twig actual a mi request de Terminal y muestra información sobre la confirmación más reciente en esta carpeta cada vez que copio en una carpeta que es un repository de git en la terminal

El problema es que cada vez que cambio de sucursales con el git checkout dentro de esa carpeta de repository, el aviso no actualiza la twig actual, este es mi código bash ubicado en mi file .bashrc

 cd() { builtin cd "$@" local status=$? [ $status -eq 0 ] && PS1="[\e[0;32m${debian_chroot:+($debian_chroot)}\w\e[m]\e[0;35m$(parse_git_branch)\e[m \n$ " if [ -d .git ]; then echo -e "\nMost Recent Commit" git show --summary; fi return $status } 

tienes que cambiarte ~ / .bashrc y exportar la variable de entorno PS1.

Aquí hay un ejemplo de ~ / .bashrc:

 # settings for this script MY_DOMAIN=$(hostname -f | sed -e "s/^[^.]*\.//") MY_FQDN=$(hostname -f) MY_TTY=$(tty| cut -f3- -d/) MY_USER=$(whoami) MY_ROT="\033[31m" MY_GRUEN="\033[32m" MY_GELB="\033[33m" MY_BLAU="\033[34m" MY_LILA="\033[35m" MY_CYAN="\033[36m" MY_WEISS="\033[37m" MY_FETT="\033[1m" MY_NORMAL="\033[2m" MY_RESET="\033[0m" # user color MY_U="$MY_BLAU" case $MY_USER in developer) MY_U="$MY_GRUEN" ;; root) MY_U="$MY_ROT" ;; esac [ $(id -u) -eq 0 ] && MY_U="$MY_U$MY_FETT" MY_U="\[$MY_U\]" # host color MY_H="$MY_ROT" MY_H="\[$MY_H\]" # working directory color MY_W="\[$MY_CYAN\]" # tty color MY_T="\[$MY_BLAU$MY_FETT\]" MY_R="\[$MY_RESET\]" MY_G="\[$MY_GELB\]" MY_GF="\[$MY_GELB$MY_FETT\]" GIT_PS1_SHOWDIRTYSTATE=1 GIT_PS1_SHOWUNTRACKEDFILES=1 GIT_PS1_SHOWSTASHSTATE=1 GIT_PS1_SHOWUPSTREAM=verbose export PS1="$MY_U\u$MY_R$MY_G@$MY_R$MY_H\h$MY_R$MY_G($MY_R$MY_T$MY_TTY \t$MY_R$MY_G):$MY_R$MY_W\w$MY_R\$(__git_ps1 \"$MY_GF:$MY_R \[$MY_ROT\](%s)$MY_R \")$MY_GF\$$MY_R " 

que hace esto: enter image description here

Como se documenta en el libro de Pro Git , necesitas el file git-prompt.sh (que debe instalarse como parte de Git) y luego en tu .bashrc haz algo como:

 . /usr/share/git-core/contrib/completion/git-prompt.sh export GIT_PS1_SHOWDIRTYSTATE=1 export PS1='\w$(__git_ps1 " (%s)")\$ ' 

En la mayoría de las distribuciones de Linux puedes get la twig haciendo.

 echo $(__git_ps1) (develop) 

Si __git_ps1 no está disponible, primero debe generar git-sh-prompt. Puede ser git-prompt.sh en otras distros.

 source /usr/lib/git-core/git-sh-prompt