Sinopsis
git remote [-v]
git remote add <name> <url>
git remote remove <name>
git remote set-url <name> <url>
Descripción
El comando git remote gestiona el conjunto de repositorios ("remotos") cuyas URLs se almacenan en tu configuración local. Cada remoto tiene un apodo corto (comúnmente origin para la fuente original del clone y upstream para el proyecto del que hiciste fork). Cuando ejecutas git fetch origin, git push origin o similar, el apodo se resuelve a la URL.
Los remotos se almacenan en .git/config y pueden tener URLs separadas para fetch y push. También llevan refspecs que determinan qué refs descargar y a qué namespace local. Los flujos modernos a menudo solo tienen origin, mientras que los contribuyentes de open source típicamente tienen tanto origin (su fork) como upstream (el proyecto canónico).
En el uso diario, git remote se integra con alias de shell.
Entender cómo git remote interactúa con el modelo de datos de Git rinde dividendos.
Opciones comunes
| Opción / Subcomando | Descripción |
|---|---|
-v, --verbose | Muestra URLs junto a los nombres de remotos. |
add <name> <url> | Registra un nuevo remoto. |
remove <name> | Elimina un remoto de la config. |
rename <old> <new> | Renombra un remoto. |
set-url <name> <url> | Cambia la URL de un remoto. |
show <name> | Muestra info detallada sobre un remoto. |
prune <name> | Elimina refs de seguimiento remoto obsoletas. |
Ejemplos
git remote -v
# Lista todos los remotos con URLs
git remote add upstream https://github.com/original/project.git
# Añade el repo upstream de un fork
git remote set-url origin [email protected]:me/project.git
# Cambia de HTTPS a SSH
git remote prune origin
# Elimina branches de seguimiento que ya no existen en origin
Errores comunes
Añadir la URL incorrecta (typo, sufijo .git faltante en algunos hosts) lleva a errores de fetch confusos. Ejecuta git remote -v para confirmar. Tras renombres de repositorio o cambios de propietario de fork, las URLs de tus remotos se vuelven obsoletas: arréglalas con set-url. No olvides hacer git remote prune periódicamente para limpiar branches eliminados en el servidor.
Comandos relacionados
git fetch, git push, git pull, git ls-remote