Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Antes de tu primer commit, Git necesita saber quién eres. git config almacena pares clave-valor en tres ámbitos: system (todos los usuarios), global (tu cuenta de usuario) y local (un único repositorio). El ámbito global vive en ~/.gitconfig en Unix y %USERPROFILE%\.gitconfig en Windows.

Identidad

Configura tu nombre y correo; estos quedan grabados en cada commit que haces:

git config --global user.name "Ada Lovelace"
git config --global user.email "[email protected]"

Editor y paginador

Git lanza tu editor para mensajes de commit y rebases interactivos. Elige uno del que sepas salir:

git config --global core.editor "nano"
# o
git config --global core.editor "code --wait"
# o
git config --global core.editor "vim"

Nombre del branch predeterminado

Desde Git 2.28 puedes establecer el branch predeterminado para nuevos repositorios:

git config --global init.defaultBranch main

Finales de línea

Para evitar sorpresas con CRLF/LF en equipos multiplataforma:

# Linux, macOS
git config --global core.autocrlf input

# Windows
git config --global core.autocrlf true

Alias útiles

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.lg "log --oneline --graph --decorate --all"

Ahora git lg da un grafo compacto de todos los branches.

Inspeccionando la configuración

Lista toda la configuración con archivos de origen, útil para depurar sorpresas:

git config --list --show-origin
git config --get user.email

Comportamiento de pull

Desde Git 2.27 el comportamiento predeterminado de pull requiere una elección explícita. Elige una:

git config --global pull.rebase false   # merge (predeterminado)
git config --global pull.rebase true    # rebase
git config --global pull.ff only        # solo fast-forward

Inclusiones condicionales

Git soporta configuración por directorio mediante includeIf. Esta es la forma más limpia de mantener identidades laborales y personales separadas sin tener que recordar establecer config local en cada clon:

# en ~/.gitconfig
[includeIf "gitdir:~/work/"]
  path = ~/.gitconfig-work

# en ~/.gitconfig-work
[user]
  email = [email protected]
  signingkey = ssh-ed25519 AAAA...

Cualquier repo clonado bajo ~/work/ automáticamente toma la identidad de trabajo. Combina con inclusiones onbranch: para limitar configuraciones a branches específicos.

Sobrescrituras por repo

La configuración local en .git/config sobrescribe el archivo global. Este es el lugar correcto para identidades específicas del proyecto, hooks y claves de firma. Para auditar de qué ámbito viene una configuración:

git config --show-origin --get user.email
git config --show-scope --get-all credential.helper

Si un valor parece incorrecto, --show-origin te dice exactamente qué archivo lo contiene. Cuidado: cualquiera de los ámbitos system, global, local o incluso worktree puede ocultar a otro. git config --list --show-origin muestra el panorama completo de una vez.

Errores comunes

Configurar user.email con una dirección personal mientras haces commits para el trabajo, filtrándola en plataformas públicas de hosting. Usa el ámbito local dentro de los repositorios de trabajo para sobrescribir el valor global: git config user.email "[email protected]". Otro clásico: editar ~/.gitconfig a mano e introducir un error de sintaxis que rompe todos los comandos de Git. Usa git config para escribir valores, y git config --list para verificar tras cada cambio.