Sinopsis
git config [--global | --system | --local] <key> [<value>]
git config --list
git config --edit
Descripción
El comando git config lee y escribe valores en los archivos de configuración de Git. Hay tres ámbitos: system (/etc/gitconfig), global (~/.gitconfig) y local (.git/config). Los más específicos sobrescriben a los más generales.
Los usos comunes incluyen configurar identidad (user.name, user.email), aliases, predeterminados de pull/push y configuración de credenciales. git config --list --show-origin muestra todos los valores efectivos y de qué archivo vienen.
En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.
Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.
Opciones comunes
| Opción | Descripción |
|---|---|
--global | Operate on per-user config. |
--system | Operate on system-wide config. |
--local | Operate on the current repo's config (default if in a repo). |
--list | Show all settings. |
--edit | Open the chosen config in your editor. |
--unset | Remove a setting. |
--add | Add a value to a multi-valued key. |
--show-origin | Annotate output with the file each setting comes from. |
Ejemplos
git config --global user.name "Jane Smith"
git config --global user.email "[email protected]"
# Identity for every repo
git config --global init.defaultBranch main
git config --global pull.rebase true
git config --global core.editor "code --wait"
# Sensible modern defaults
git config --global alias.lg "log --oneline --graph --decorate --all"
# Custom alias
git config --list --show-origin
# Audit where each setting comes from
Errores comunes
Setting global config that's meant to be local (or vice versa) leads to confusing behavior. Forgetting to set user.email on a fresh machine causes every commit to be unattributed. Use conditional includes ([includeIf "gitdir:~/work/"]) to swap identities per directory.
Comandos relacionados
git credential, git init, git remote