Configurar Git: git config, nombre, correo y claves SSH
La configuración básica de Git consiste en los comandos git config --global user.name y git config --global user.email, que firman tus commits, más elegir el editor y la rama por defecto. Para entrar en GitHub sin contraseña, crea una clave SSH con ssh-keygen -t ed25519, añade la clave pública a los ajustes de tu cuenta y comprueba la conexión con ssh -T git@github.com.
Configuración mínima de Git en un minuto
Justo después de instalarlo, ejecuta cuatro comandos. Sin los dos primeros, Git se negará a hacer commits; los otros te ahorrarán molestias típicas.
git config --global user.name "Ana García"
git config --global user.email "ana@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
Comprueba el resultado:
$ git config --global --list
user.name=Ana García
user.email=ana@example.com
init.defaultbranch=main
core.editor=code --wait
A continuación veremos qué hace exactamente cada ajuste, dónde los guarda Git y cómo configurar el acceso a GitHub por SSH.
Cómo funciona git config: tres niveles de ajustes
El comando git config lee y escribe parámetros en uno de tres archivos. El nivel más específico sobrescribe al más general.
| Nivel | Opción | Archivo | Afecta a |
|---|---|---|---|
| Sistema | --system | /etc/gitconfig (en Windows, en la carpeta de instalación de Git) | Todos los usuarios del ordenador |
| Global | --global | ~/.gitconfig o ~/.config/git/config | Todos tus repositorios |
| Local | --local (por defecto) | .git/config dentro del repositorio | Solo ese repositorio |
Casi todo lo personal se configura a nivel global, y las excepciones, en local. Por ejemplo, el correo del trabajo para los proyectos de la empresa se define dentro del repositorio concreto, sin la opción --global.
Comandos útiles de git config
git config user.email # mostrar el valor actual
git config --list --show-origin # todos los ajustes y de qué archivo sale cada uno
git config --global --edit # abrir ~/.gitconfig en el editor
git config --global --unset core.editor # eliminar un parámetro
La opción --show-origin es tu mejor aliada al depurar: te muestra por qué tienes el correo «equivocado» indicando el archivo del que viene el valor.
Nombre y correo: por qué no es un trámite
Cada commit guarda para siempre el nombre y el email del autor. No es un usuario ni una contraseña: Git no los verifica en absoluto. Pero GitHub y GitLab usan el correo para vincular los commits a tu cuenta: si la dirección no coincide con ningún email confirmado del perfil, los commits no contarán en el gráfico de actividad y aparecerán sin avatar.
Cambiar el nombre o el correo a posteriori no es posible sin reescribir el historial, así que revisa los ajustes antes del primer commit.
Ocultar tu correo real
Si el repositorio es público, cualquiera que mire el historial verá tu email. GitHub ofrece una dirección de servicio del tipo ID+username@users.noreply.github.com (en los ajustes de Emails). Configúrala en Git:
git config --global user.email "12345678+ana@users.noreply.github.com"
Un correo distinto para el trabajo y los proyectos personales
Para no configurar a mano cada repositorio del trabajo, usa la inclusión condicional de configuraciones. En ~/.gitconfig:
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
Y en ~/.gitconfig-work:
[user]
email = ana@company.com
Ahora todos los repositorios dentro de ~/work/ usan automáticamente el correo del trabajo. La barra al final de la ruta es obligatoria.
Otros ajustes útiles de Git
Editor
Git abre el editor para los mensajes de commit, el rebase interactivo y las fusiones. Por defecto suele ser Vim. Alternativas:
git config --global core.editor "code --wait" # VS Code
git config --global core.editor "nano" # Nano
git config --global core.editor "subl -n -w" # Sublime Text
Rama por defecto
init.defaultBranch main define el nombre de la primera rama en los repositorios nuevos (disponible desde Git 2.28). Sin él, Git creará master y mostrará un aviso sobre cómo cambiar el nombre.
Saltos de línea
git config --global core.autocrlf true # Windows
git config --global core.autocrlf input # macOS y Linux
Así el repositorio siempre guarda saltos de línea LF y en el equipo no aparecen «cambios» en todas las líneas de un archivo.
Comportamiento de git pull
Si no defines una estrategia, el Git moderno te pedirá elegirla explícitamente cuando las ramas diverjan. Elige una:
git config --global pull.rebase false # fusión (merge), comportamiento por defecto
git config --global pull.rebase true # rebase, historial lineal
git config --global pull.ff only # solo fast-forward; si no, error
Acentos y ñ en los nombres de archivo, y color
git config --global core.quotepath false
git config --global color.ui auto
Con core.quotepath false, git status muestra nombres como presentación.md tal cual, en vez de secuencias octales del tipo "presentaci\303\263n.md".
Alias
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"
Ahora git lg dibuja el grafo de ramas y git last muestra el último commit.
Cómo queda ~/.gitconfig tras la configuración
[user]
name = Ana García
email = ana@example.com
[init]
defaultBranch = main
[core]
editor = code --wait
autocrlf = input
quotepath = false
[pull]
rebase = false
[alias]
st = status
lg = log --oneline --graph --decorate --all
Es un archivo de texto normal: puedes editarlo a mano y llevarlo de un ordenador a otro.
Git login: cómo iniciar sesión en GitHub
Git no tiene un comando git login, una trampa habitual para principiantes. Git no guarda una «cuenta»: la autenticación se produce al conectar con el servidor (clone, push, fetch) mediante uno de dos protocolos.
| HTTPS | SSH | |
|---|---|---|
| Dirección | https://github.com/user/repo.git | git@github.com:user/repo.git |
| Con qué se confirma el acceso | Token de acceso o inicio de sesión en el navegador (Credential Manager) | Un par de claves SSH |
| Contraseña de la cuenta | No se acepta desde 2021 | No hace falta |
| Cuándo es más cómodo | Windows con Git Credential Manager, proxies corporativos | macOS, Linux, servidores, CI |
Acceso por HTTPS
En Git for Windows y en las versiones para macOS con Git Credential Manager, en el primer git push se abrirá una ventana del navegador para entrar en GitHub y los datos se guardarán en el almacén del sistema. Una alternativa es la herramienta oficial GitHub CLI: el comando gh auth login te guía por la autorización y configura Git. Si lo haces todo a mano, crea un Personal access token en los ajustes de GitHub (Developer settings) e introdúcelo en lugar de la contraseña.
SSH para Git: configuración paso a paso
Una clave SSH es un par de archivos: la clave privada se queda contigo y la pública se la das a GitHub. El servidor comprueba que posees la parte privada y nunca más te pide la contraseña.
Paso 1. Comprueba si ya tienes una clave
ls -la ~/.ssh
Si ya existen id_ed25519 e id_ed25519.pub, pasa al paso 3.
Paso 2. Crea la clave
ssh-keygen -t ed25519 -C "ana@example.com"
Pulsa Enter para guardar la clave en la ruta por defecto y define una frase de contraseña: protegerá la clave si te roban el portátil. Ed25519 es el algoritmo moderno recomendado. Si un sistema antiguo no lo admite, usa ssh-keygen -t rsa -b 4096 -C "ana@example.com".
Paso 3. Añade la clave al ssh-agent
El agente mantiene la clave descifrada en memoria para que no tengas que escribir la frase en cada push.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
En macOS, añade a ~/.ssh/config estas líneas para que la frase se guarde en el llavero:
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
y ejecuta ssh-add --apple-use-keychain ~/.ssh/id_ed25519.
Paso 4. Añade la clave pública a GitHub
cat ~/.ssh/id_ed25519.pub
Copia la línea entera, empezando por ssh-ed25519. En GitHub abre Settings → SSH and GPG keys → New SSH key, pega la clave y ponle un nombre claro, por ejemplo «Portátil 2026». Nunca envíes ni publiques el archivo sin .pub: es la clave privada.
Paso 5. Comprueba la conexión
$ ssh -T git@github.com
Hi ana! You've successfully authenticated, but GitHub does not provide shell access.
En la primera conexión, SSH preguntará si confías en el host: compara la huella con las publicadas en la documentación de GitHub y responde yes.
Paso 6. Cambia el repositorio a SSH
Si el repositorio se clonó por HTTPS, cambia la dirección del remoto:
git remote -v
git remote set-url origin git@github.com:ana/my-project.git
git push
Varias cuentas de GitHub en el mismo ordenador
Una clave SSH solo se puede vincular a una cuenta de GitHub. Para la cuenta del trabajo y la personal, crea dos claves y alias de host en ~/.ssh/config:
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
Clona los repositorios del trabajo a través del alias: git clone git@github-work:company/app.git. Junto con includeIf para el correo, esto te da entornos de trabajo y personal totalmente separados.
Errores frecuentes al configurar
«Please tell me who you are»
No están definidos user.name ni user.email. Ejecuta los comandos del principio del artículo y repite el commit.
«Permission denied (publickey)»
GitHub no encontró una clave válida. Comprueba que la clave está en el agente (ssh-add -l) y que la parte pública está añadida a la cuenta; los detalles te los dará ssh -vT git@github.com.
«Support for password authentication was removed»
Has introducido la contraseña de tu cuenta trabajando por HTTPS. Usa un token, el inicio de sesión con Credential Manager o pásate a SSH.
Commits en GitHub sin avatar
El correo de git config user.email no está añadido a tu perfil de GitHub. Añádelo en Settings → Emails y los commits antiguos se vincularán automáticamente.
El puerto 22 está cerrado en la red
GitHub acepta SSH también en el puerto 443. En ~/.ssh/config indica Host github.com, Hostname ssh.github.com, Port 443.
Orden de configuración en un ordenador nuevo
- Instala Git y comprueba
git --version. - Define
user.name,user.email,init.defaultBranchy el editor. - Copia o crea
~/.gitconfigcon los alias y la estrategia de pull. - Crea una clave SSH nueva (no copies la clave privada antigua entre máquinas si no es necesario) y añádela a GitHub.
- Comprueba el acceso con
ssh -T git@github.comy clona el repositorio de trabajo con la dirección SSH.
Tener una clave por dispositivo también tiene la ventaja de que, si pierdes el portátil, basta con borrar una clave en GitHub sin tocar el acceso desde las demás máquinas.
Conclusión
Configurar Git se reduce a tres pasos: definir nombre y correo con git config --global, elegir el editor, la rama por defecto y la estrategia de pull, y después configurar el acceso a GitHub, lo más sencillo y fiable con una clave SSH. Recuerda que no existe un comando git login: la autenticación se produce al conectar con el servidor. La configuración y el acceso por SSH se ven en detalle, con práctica, en el curso de Git.
Preguntas frecuentes
¿Dónde se guardan los ajustes de Git en Windows?
Los globales, en el archivo C:\Users\Nombre\.gitconfig; los locales, en .git\config de cada repositorio. Para saber la ubicación exacta usa git config --list --show-origin.
¿Cómo restablecer la configuración de Git?
Borra o renombra el archivo ~/.gitconfig y Git volverá a los valores por defecto. Un parámetro concreto se elimina con git config --global --unset nombre.
¿Puedo usar la misma clave SSH para GitHub y GitLab?
Sí, una misma clave pública se puede añadir a distintos servicios. La única limitación es que en GitHub una clave se vincula a una sola cuenta.
¿Cómo firmar los commits para que GitHub muestre la marca Verified?
Configura la firma con una clave GPG o SSH: por ejemplo, git config --global gpg.format ssh, user.signingkey con la ruta a la clave pública y commit.gpgsign true, y luego añade la clave en GitHub como Signing key.
¿Hay que volver a configurar Git tras actualizarlo?
No, la actualización no toca ~/.gitconfig ni las claves de ~/.ssh: se conservan todos los ajustes.
Este tema se explica a fondo y con práctica en el curso «Git desde cero hasta desarrollador seguro».
- Instalación y configuración: preparando Git para su primer uso
- GitHub y repositorios remotos: tu código en la nube