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