usar tag name hacer como commits commands git shell

name - git tag stack overflow



Expansión de la variable Shell en git config (2)

No puedes. git-config (1) no es compatible con la expansión de variables de entorno, sino solo con la conversión de tipo limitado y la expansión de rutas:

El especificador de tipo puede ser --int o --bool, para hacer que git config se asegure de que la (s) variable (s) sea (n) del tipo dado y convierta el valor a la forma canónica (número decimal simple para int, un "verdadero" o cadena "falsa" para bool), o --path, que hace una expansión de ruta (ver --path a continuación). Si no se pasa ningún especificador de tipo , no se realizan comprobaciones o transformaciones en el valor.

La documentación para --path states:

--camino

git-config expandirá ~ al valor de $ HOME, y ~ usuario al directorio de inicio para el usuario especificado . Esta opción no tiene ningún efecto al establecer el valor (pero puede usar git config bla ~ / desde la línea de comando para permitir que su shell realice la expansión).

El término "expansión" no aparece en ningún contexto diferente en git-config(1) . Entonces, ¿cómo se le ocurrió la idea de que así fuera, dado que ninguna característica de este tipo está documentada en ninguna parte?

Para expandir las variables de entorno, debe preprocesar el archivo de configuración de Git, es decir, crear un archivo de plantilla y expandir las variables con un script antes de copiar el archivo en su directorio $HOME .

Si se trata de la administración de archivos dot, entonces haz lo que hacen todas las personas: colócalas en un directorio y agrega enlaces simbólicos a este directorio desde $HOME .

Tengo una variable de shell que apunta al directorio donde se encuentran todos mis archivos de configuración. Supongamos que la variable se crea con la export RC=$HOME/rc . Tengo un archivo global de ignorar en el directorio de configuración: ~/rc/globalgitignore .

Mi pregunta es, ¿cómo puedo expandir la variable RC en mi archivo .gitconfig ?

Ya probé lo siguiente:

  • excludesfile = $RC/globalgitignore

  • excludesfile = !$RC/globalgitignore

  • excludesfile = !echo $RC/globalgitignore

  • excludesfile = !$(echo $RC/globalgitignore)

Ninguna de estas soluciones funciona.

La única forma en que esto funciona si ingreso la ruta completa es excludesfile = ~/rc/globalgitignore , pero luego tengo que cambiar la ruta si muevo mi directorio rc a una ubicación diferente.


Utilizo scripts bash en mi configuración para habilitar la expansión de variables. Simplemente exporte la variable que necesita en su .bashrc y úselo en las secuencias de comandos:

En mi ~ / .bashrc:

export TESTVARIABLE="hello"

En mi ~ / .gitconfig:

[alias] test = !bash -c ''"echo /"Value: $TESTVARIABLE/";"''

En mi mensaje bash:

bash> git test Value: hello

La otra forma de hacerlo es agregar un comando git config en el rc de tu caparazón. Yo, por ejemplo, tengo en mi .bashrc:

git config --global user.name "$USER@$HOSTNAME"

Tengo la misma configuración en todas mis máquinas, y al agregar esto puedo distinguir entre confirmaciones de diferentes máquinas. Usted podría hacer lo mismo y agregar a su shell rc:

export RC="$HOME/rc" git config --global core.excludesfile "$RC/globalgitignore"