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.