git config
Aprende a usar git config para gestionar variables de configuración: niveles, editor, colores y alias en Git.
Qué es git config
El comando git config es una utilidad de línea de comandos para leer y escribir las variables de configuración de Git — los ajustes que controlan el aspecto y el comportamiento de Git. Estas variables definen tu identidad (nombre y correo electrónico), tu editor de texto preferido, los colores de salida, los atajos de comandos (alias) y decenas de otros comportamientos.
Esta página cubre los niveles de configuración y sus archivos, cómo leer y escribir valores, cómo configurar el editor y los colores, cómo crear alias y cómo ajustar el manejo de espacios en blanco. Establecer user.name y user.email con git config suele ser lo primero que haces después de instalar Git.

Los niveles y archivos de git config
El comando git config acepta argumentos para especificar en qué nivel de configuración operar. Al buscar un valor de configuración, Git prioriza el siguiente orden (de menor a mayor prioridad):
--system– La configuración a nivel de sistema incluye a todos los usuarios del sistema operativo y todos los repositorios. El archivo de configuración a nivel de sistema se encuentra en el directorio de instalación de Git.
Nivel de sistema de git config
(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions--global– La configuración a nivel global se aplica al usuario actual del sistema operativo. Los valores de configuración global se almacenan en un archivo en el directorio de inicio del usuario.
Nivel global de git config
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows--local– Cuando no se pasa ninguna opción de configuración,git configescribe en el nivel local de forma predeterminada. El directorio.gitdel repositorio contiene un archivo que almacena los valores de configuración local.
Nivel local de git config
.git/configNota: Los ajustes locales tienen prioridad sobre los globales, que a su vez tienen prioridad sobre los del sistema. Así, un user.email definido dentro de un repositorio (local) prevalece sobre el valor global, lo que te permite usar una dirección de trabajo en un proyecto y una dirección personal en otro.
Cómo escribir un valor
Para escribir un valor, pasa el nombre de la configuración seguido del valor. El ejemplo siguiente escribe [email protected] en user.email. El indicador --global establece el valor para el usuario actual del sistema operativo, por lo que se aplica a todos los repositorios en los que trabajes:
git config establecer usuario
git config --global user.email "[email protected]"Una configuración inicial típica escribe tanto tu nombre como tu correo electrónico:
git config --global user.name "Jane Doe"
git config --global user.email "[email protected]"Estos dos valores se estampan en cada commit que creas, así que defínelos antes de tu primer commit.
Cómo leer un valor
El uso básico de git config es recuperar un valor de configuración especificando su nombre. Los nombres de configuración se componen de una sección y una clave separadas por un punto:
git config correo del usuario
git config user.emailAquí, email es una propiedad secundaria de la sección user. Al ejecutarlo, se imprime el valor activo — el que prevalece tras aplicar la cadena de prioridad local → global → sistema.
Comandos de inspección útiles
Más allá de leer una sola clave, estos comandos te ayudan a ver y gestionar todo lo que Git tiene configurado:
| Comando | Qué hace |
|---|---|
git config --list | Lista todos los ajustes activos, combinados de todos los niveles. |
git config --list --show-origin | Lista cada ajuste junto con el archivo del que proviene. |
git config --get-all <key> | Recupera todos los valores de una clave que puede definirse más de una vez. |
git config --unset <key> | Elimina un ajuste individual. |
git config --edit | Abre el archivo de configuración correspondiente en tu editor predeterminado. |
Cuando dos niveles definen la misma clave, --show-origin es la forma más rápida de encontrar qué archivo es responsable del valor que Git utiliza realmente.
El editor de git config - core.editor
Cuando tu identidad está configurada, Git usa el editor predeterminado del sistema, que es Vi o Vim. El comando git config permite especificar qué editor usará Git. Aquí tienes la lista de los editores más comunes con sus comandos de git config:
| Editor | Comando de configuración |
|---|---|
| Atom | git config --global core.editor "atom --wait" |
| emacs | git config --global core.editor "emacs" |
| nano | git config --global core.editor "nano -w" |
| vim | git config --global core.editor "vim" |
| Sublime Text (Mac) | git config --global core.editor "subl -w" |
| Sublime Text (Win, 32-bit install) | git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w" |
| Sublime Text (Win, 64-bit install) | git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w" |
| Textmate | git config --global core.editor "mate -w" |
Salidas con color
Git admite colores, lo que simplifica la lectura de la salida de Git. Puedes usar tus propios colores para personalizar la salida. Para establecer los valores de color se usa el comando git config.
color.ui
Git colorea automáticamente la mayor parte de su salida, pero también existe una variable maestra si deseas establecer otro color. Para deshabilitar toda la salida en color de la terminal de Git puedes hacer lo siguiente:
git config establecer color.ui
git config --global color.ui falseEl valor predeterminado de color.ui es auto, que aplica colores directamente a la salida de la terminal. Omite los códigos de color cuando la salida se redirige a una tubería o a un archivo.
También puedes establecer el valor de color.ui en always. Esto aplica los códigos de color cuando la salida se redirige a archivos o tuberías. Esto puede causar problemas si la tubería receptora no espera entrada con códigos de color.
Valores de color de Git
Además de color.ui, existen otros ajustes de color que pueden establecerse en false, auto o always. Pueden tener un valor de color específico: normal, black, red, green, yellow, blue, magenta, cyan, white. Los colores pueden especificarse como códigos de color hexadecimales como #1c87c9 o valores de color ANSI de 256 colores si la terminal lo admite.
Ajustes de configuración de color de Git
| Ajuste | Descripción |
|---|---|
| color.branch | Configura el color de salida del comando de rama de Git. |
color.branch.<slot> | Es relevante para la salida de la rama de Git. <slot> es uno de los siguientes: 1. rama actual 2. rama local 3. rama remota 4. rama upstream 5. plain (cualquier otra referencia) |
| color.diff | Aplica colores a la salida de git diff, git log y git show. |
color.diff.<slot> | Indica a git en qué parte del parche (context, plain, meta, frag, old, new, commit, whitespace) debe usarse un color específico. |
color.decorate.<slot> | Ajusta el color para la salida de git log --decorate. Los valores de <slot> admitidos son branch, remote Branch, tag, stash o HEAD. Se aplican a ramas locales, ramas de seguimiento remoto, etiquetas, cambios almacenados y HEAD, respectivamente. |
| color.grep | Aplica color a la salida de git grep. |
color.grep.<slot> | Puede aplicarse a git grep. La variable <slot> especifica a qué parte de la salida de grep (context, filename, function, line number, match, match Context, match Selected, selected, separator) debe aplicarse el color. |
| color.interactive | Aplica color a los mensajes interactivos y a las visualizaciones (p. ej., git add --interactive, git clean --interactive). |
color.interactive.<slot> | Se dirige a una "salida interactiva". Los valores de <slot> disponibles son: prompt, header, help, error. |
| color.pager | Habilita o deshabilita la salida en color cuando el paginador está en uso. |
| color.showBranch | Habilita o deshabilita la salida en color para el comando git show branch. |
| color.status | Habilita o deshabilita la salida en color para el estado de Git. |
color.status.<slot> | Especifica un color personalizado para los elementos definidos del estado de git. <slot> admite los siguientes valores: header, added or updated, changed, untracked, branch, nobranch, unmerged. |
Los alias de git config
Los alias son atajos personalizados que se expanden a comandos más largos o combinados, para que no tengas que volver a escribir los comandos de uso frecuente en su totalidad. El sistema de alias de Git se usa principalmente para acortar los comandos habituales. Los alias se crean con git config:
git config establecer alias
git config --global alias.ci commitDespués de esto, git ci ejecuta git commit. Como el valor contiene un espacio, un alias que se asigna a un comando con indicadores debe entrecomillarse como un único argumento:
alias de git config
git config --global alias.amend "commit --amend"Aquí, ejecutar git amend se expande a git commit --amend. Un alias también puede llamar a un comando del shell anteponiendo al valor el prefijo !, por ejemplo git config --global alias.unstage '!git restore --staged'. Para profundizar más, consulta el capítulo dedicado a git alias.
Formato y espacios en blanco
| Característica | Descripción | Comando de Git Config |
|---|---|---|
indent-with-non-tab | Resalta una línea que comienza con espacios en lugar de tabulaciones. | git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol" |
tab-in-indent | Resalta una tabulación inicial de sangría como un error. | (Combinado con otras reglas) |
blank-at-eof | Resalta las líneas en blanco insertadas al final de un archivo. | (Combinado con otras reglas) |
trailing-space | Resalta los espacios en blanco al final de la línea. | (Combinado con otras reglas) |
cr-at-eol | Resalta un retorno de carro al final de la línea. | (Combinado con otras reglas) |
tabwidth=<n> | Especifica cuántas posiciones de carácter ocupa una tabulación. El valor predeterminado es 8. Valores permitidos: 1-63. | git config --global core.whitespace "tabwidth=<n>" |
Otros ajustes comunes
Vale la pena configurar algunos valores en una máquina nueva:
# Name the default branch "main" for every repository you create
git config --global init.defaultBranch main
# Reuse cached credentials so you are not prompted on every push
git config --global credential.helper cache
# Choose how git pull reconciles divergent branches (merge, not rebase)
git config --global pull.rebase falseEl valor init.defaultBranch lo aplica git init cuando se crea un repositorio. Para controlar qué archivos rastrea Git, complementa tu configuración con un archivo .gitignore.