Explorador
Chuleta

Remotos y autenticación por SSH

Conectar un repo local con GitHub, sincronizar con fetch, pull y push, y configurar una llave SSH.

Actualizado el

En esta guía

Gestionar remotos

Comando Qué hace
git remote -v Lista los remotos con sus URLs
git remote add origin <url> Conecta el repo local con un remoto llamado origin
git remote set-url origin <url> Cambia la URL de un remoto
git remote remove origin Desconecta el remoto

origin es solo el nombre por convención del remoto principal.

Sincronizar

Comando Qué hace
git fetch Descarga los cambios del remoto sin tocar las ramas locales
git pull fetch y además integra los cambios en la rama actual
git pull --rebase Igual, pero reaplicando los commits propios encima
git push Sube los commits de la rama actual
git push -u origin main Sube y enlaza la rama local con la remota. Solo hace falta la primera vez
git push origin --delete feature Borra una rama en el remoto

Después de fetch, las ramas remotas se ven como origin/main. Compararlas antes de integrar evita sorpresas:

git fetch
git log --oneline main..origin/main    # commits que tiene el remoto y faltan en local
git diff main origin/main

Subir un repo local por primera vez

git remote add origin git@github.com:usuario/repo.git
git push -u origin main

Cuando el push es rechazado

Ocurre si el remoto tiene commits que no están en local. Se traen primero y luego se sube:

git pull --rebase
git push

git push --force sobrescribe el historial del remoto y puede borrar commits de otras personas. Si de verdad hace falta tras un rebase en una rama propia, la opción segura es git push --force-with-lease, que falla si alguien más subió algo entre tanto.

Autenticación por SSH

Con SSH no se escribe usuario ni token en cada operación.

ssh-keygen -t ed25519 -C "tu@correo.com"   # genera el par de llaves
cat ~/.ssh/id_ed25519.pub                  # la llave pública, la que se copia
  1. Copiar el contenido de id_ed25519.pub.
  2. En GitHub: Settings → SSH and GPG keys → New SSH key, y pegarla.
  3. Comprobar la conexión:
ssh -T git@github.com

La llave privada (~/.ssh/id_ed25519, sin .pub) nunca se comparte y debe tener permisos 600. El detalle está en la guía de permisos.

Para no escribir la passphrase en cada operación:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

HTTPS o SSH

URL Autenticación
HTTPS https://github.com/usuario/repo.git Token de acceso personal
SSH git@github.com:usuario/repo.git Llave SSH