Atajo variable de Git Branch Bash

Intento crear una variable bash que pueda usar para referirme a mi twig actual en Git: algo así como $ branch.

Al agregar: branch=$(git symbolic-ref --short -q HEAD) en mi bash_profile , sigo recibiendo: fatal: Not a git repository (or any of the parent directories): .git cuando inicio un nuevo terminal.

Además, echo $branch no imprime el nombre de la twig, ya que git symbolic-ref --short -q HEAD haría.

Me gustaría poder usarlo para no imprimir el nombre de la twig (ya lo tengo en mi post) pero para hacer cosas como:

git push origin $branch

La twig en la que se encuentra depende del directory en el que se encuentre. Si tiene dos treees de trabajo de git, ~/a y ~/b , al escribir cd ~/a puede ponerlo en una twig y escribir cd ~/b puede ponerlo en otra twig.

Por lo tanto, intentar establecer $branch en tu .bash_profile no va a funcionar. Necesita actualizar $branch cada vez que cambie treees de trabajo, y después de cualquier command que pueda cambiar la twig del tree de trabajo actual.

Lo más simple es simplemente no establecer una variable. En cambio, crea un alias:

 alias branch='git symbolic-ref --short -q HEAD 2>/dev/null' 

Y luego úsalo así:

 git push origin $(branch) 

o así si eres de la vieja escuela:

 git push origin `branch` 

Si realmente desea establecer una variable de entorno, la solución más simple es simplemente configurarla cada vez que imprima su post:

 _prompt_command () { export branch=$(git symbolic-ref --short -q HEAD 2>/dev/null) } export PROMPT_COMMAND=_prompt_command 

Nota: debe verificar su .bash_profile y .bashrc para ver si ya está configurando PROMPT_COMMAND . Si es así, simplemente configure la branch en cualquier function que ya esté ejecutando como su command de request.