Variable de entorno Bash no actualizada

Estoy usando el gancho de git post-checkout en mi repository para la twig actual en una variable, luego quiero usarlo en otro lugar, como PHP, etc.

A continuación está mi script post-checkout:

#!/bin/bash echo $GITBRANCH GITBRANCH=`git symbolic-ref HEAD | cut -d/ -f3-` echo $GITBRANCH export $GITBRANCH 

Sin embargo, no se actualiza. Por ejemplo:

 >git checkout master Switched to branch 'master' develop master >echo $GITBRANCH develop 

Ejecutando GITBRANCH=git symbolic-ref HEAD | cut -d/ -f3- GITBRANCH=git symbolic-ref HEAD | cut -d/ -f3- command GITBRANCH=git symbolic-ref HEAD | cut -d/ -f3- por sí mismo producirá el nombre de la twig actual.

¿Por qué el gancho no actualiza la variable $ GITBRANCH globalmente?

Un process de dos pasos debe lograr lo que desea:

1) En su script post-checkout, cree un file temporal que contenga la variable que desea exportar. Algo como

 #!/bin/bash GITBRANCH=`git symbolic-ref HEAD | cut -d/ -f3-` echo "GITBRANCH=$GITBRANCH" > /tmp/new-branch 

2) Cree una function bash para que actúe como un contenedor alnetworkingedor de git y utilícela para get el file temporal después de la finalización de la compra:

 # Put this in .bashrc git () { command git "$@" if [[ $1 = "checkout" ]]; then . /tmp/new-branch fi } $ git checkout master Switched to branch 'master' $ echo $GITBRANCH master 

Cuando establece la variable en un script, estará disponible solo en el shell en el que se ejecutan los scripts. ¡Tan pronto como el process finalice, la variable que configure se habrá perdido para siempre!

Si desea que la variable esté disponible en todas partes, probablemente .profile o .bashrc serían un lugar mejor.

ejecuta el script con un punto al frente.

 . script 

Tratar:

 export GITBRANCH 

Es decir, sin el signo de dólar.