Una vez hemos instalado Git su configuración es bastante sencilla al estar basada en la modificación de un fichero de variables. Dependiendo del tipo de configuración que necesitemos, la modificación de este fichero se hace en un sitio diferente.
Estas variables definen el comportamiento que tendrá Git cuando ejecute sus comandos. Por ejemplo, alguna de ellas sirve para indicar el editor que debe utilizar para añadir el mensaje cuando hacemos un commit o creamos un tag, otras indican el usuario a utilizar cuando hacemos un commit, etc.
Todas esta variables se pueden crear, modificar y borrar. En este pequeño artículo vamos a ver como hacerlo y cuales son los ficheros afectados en estas operaciones.
Recordemos que al tener diferentes niveles de configuración, si tenemos una propiedad igual a nivel de un repositorio local, tendrá más preferencia sobre el valor de la misma variable a nivel de global o del sistema.
Configuración a nivel del sistema
Afecta a la configuración de Git de todo el sistema. En este caso a cualquier repositorio y usuario del sistema. El fichero modificado en este caso es
En sistemas Unix
1 |
/etc/gitconfig |
En windows
1 |
%INSTALACION_GIT%/etc/gitconfig |
Ejemplo listado de las variables
123456789101112131415 |
$ git config --list --systemcore.symlinks=falsecore.autocrlf=truecolor.diff=autocolor.status=autocolor.branch=autocolor.interactive=truepack.packsizelimit=2ghelp.format=htmlhttp.sslcainfo=/bin/curl-ca-bundle.crtsendemail.smtpserver=/bin/msmtp.exediff.astextplain.textconv=astextplainrebase.autosquash=trueuser.name=user name systemuser.email=system@domain |
Obtener el valor de una de las variables
12 |
$ git config --system --get user.nameuser name system |
Modificación de una de las variables
123 |
$ git config --system user.name myuser$ git config --system --get user.namemyuser |
Creación y borrado de una nueva variable
123456 |
$ git config --system --add key.one value1$ git config --system --get key.onevalue1$ git config --system --unset key.one$ git config --system --get key.one. |
Configuración a nivel de usuario llamado también configuración a nivel global
Afecta a la configuración de Git de un usuario. En este caso solo a sus repositorios. El fichero modificado en este caso es
1 |
$USER_HOME/.gitconfig |
Listado de las variables
1234 |
$ git config --list --globaluser.name=user name globaluser.email=global@domaincore.autocrlf=true |
Obtener el valor de una de las variables
12 |
$ git config --global --get user.nameuser name global |
Modificación de una de las variables
123 |
$ git config --global user.name myuser_global$ git config --global --get user.namemyuser_global |
Creación y borrado de una nueva variable
123456 |
$ git config --global --add key.one value1$ git config --global --get key.onevalue1$ git config --global --unset key.one$ git config --global --get key.one. |
Segunda configuración a nivel de usuario
Tiene preferencia la configuración a nivel de usuario vista anteriormente sobre esta configuración. El fichero afectado en este caso si existe es
1 |
$XDG_CONFIG_HOME/git/config |
Y el caso de que el anterior fichero no exista, el fichero sería:
1 |
$USER_HOME/.config/git/config |
Recordemos que XDG_CONFIG_HOME es una variable que estaría apuntando a un directorio de configuración según la especificación XDG Base Directory Specification
Aunque se recomienda no utilizar este fichero de configuración.
Configuración a nivel de repositorio o configuración local
Solo afecta a la configuración del repositorio donde lo modificamos. El fichero afectado en este caso es
1 |
$DIR_CURRENT_REPOSITORY/.git/config |
Creamos un nuevo repositorio
12345678910111213 |
$ cd /temporal$ mkdir my_repo$ cd my_repo$ git initInitialized empty Git repository in /TEMPORAL/my_repo/.git/ $ git add .$ git commit -m "version inicial"On branch master Initial commit nothing to commit |
Listado de las variables
12345678 |
$ git config --list --localcore.repositoryformatversion=0core.filemode=falsecore.bare=falsecore.logallrefupdates=truecore.symlinks=falsecore.ignorecase=truecore.hidedotfiles=dotGitOnly |
Creación, obtención, modificación y borrado de una nueva variable
1234567 |
$ git config --local --add key.one value1$ git config --local --get key.onevalue1$ git config --local key.one value2$ git config --local --unset key.one$ git config --local --get key.one. |
Configuración del usuario y email asociado a este repositorio
123456 |
$ git config --local user.name myuser_local$ git config --local user.email myuser_local@localdomain$ git config --local --get user.namemyuser_local$ git config --local --get user.emailmyuser_local@localdomain |