← Git

Trabajo remoto

¿Qué es un remoto en Git y qué es `origin`?

Ver respuesta — intenta responderla en voz alta primero

Un remoto es una versión del repositorio alojada en otro lugar (normalmente un servidor como GitHub) con la que sincronizas tu repo local. origin es el nombre por defecto que Git le da al remoto principal, generalmente aquel desde el que clonaste. Es solo un alias de una URL.

Cuando trabajas en equipo, hay una copia del repo en la nube que todos comparten. Esa copia es un remoto. Tú tienes tu copia local y sincronizas con el remoto haciendo push (subir) y pull (bajar).

origin no tiene nada de mágico: es simplemente el nombre (alias) que Git le pone al remoto principal por convención. Podrías llamarlo distinto, pero casi todo el mundo usa origin. Un repo puede tener varios remotos (por ejemplo, origin y upstream cuando trabajas con forks).

# Ver los remotos configurados y sus URLs
git remote -v
# origin  https://github.com/usuario/repo.git (fetch)
# origin  https://github.com/usuario/repo.git (push)

# Agregar un remoto llamado origin (cuando iniciaste con git init)
git remote add origin https://github.com/usuario/repo.git

# Cambiar la URL de un remoto existente
git remote set-url origin https://github.com/usuario/otro-repo.git

# Ver información detallada de un remoto
git remote show origin

# Quitar un remoto
git remote remove origin

Creer que origin es una palabra reservada de Git con un significado especial. No lo es: es solo un nombre convencional para el remoto principal. Otro error es intentar hacer git push desde un repo iniciado con git init sin haber agregado antes un remoto con git remote add origin ....

"Un remoto es una versión del repositorio alojada en otro lugar, típicamente un servidor como GitHub, con la que sincronizo mi copia local haciendo push y pull. origin es simplemente el nombre por defecto que Git le da al remoto principal, normalmente el que cloné; es un alias de una URL, no una palabra mágica. Puedo tener varios remotos, por ejemplo origin y upstream cuando trabajo con forks."

Reto rápido

Iniciaste un repo con git init y quieres subirlo a un repo vacío en GitHub. ¿Qué necesitas hacer antes de poder hacer git push?

Ver respuesta

Necesitas agregar el remoto: git remote add origin https://github.com/usuario/repo.git. Al iniciar con git init, el repo no tiene ningún remoto configurado (a diferencia de git clone, que lo configura solo). Después de agregarlo, ya puedes hacer git push -u origin main.