Tema 17 · Publicación

Publicar Cambios al Servidor: git push y Ramas Upstream

Aprende a subir tus confirmaciones locales a GitHub mediante git push, qué significa el modificador -u (upstream tracking) y cómo proteger la rama principal frente a sobreescrituras accidentales.

¿Qué hace git push?

El comando git push toma los commits que has realizado en tu repositorio local y los transmite de forma segura al servidor remoto (como GitHub). Es el acto que hace visible tu trabajo ante tu equipo y tus clientes.

La Primera Vez: El Modificador -u (Upstream)

La primera vez que subes una rama nueva a GitHub, debes asociar tu rama local con una rama remota equivalente en el servidor. Esto se hace con la bandera -u (o --set-upstream):

git push -u origin main

Al hacer esto, Git recordará el vínculo para siempre. En los días siguientes, cuando estés en esa rama, ya no tendrás que escribir origin main: bastará con ejecutar simplemente:

git push

¿Qué hacer si git push es rechazado?

Si un compañero de equipo subió cambios al servidor antes que tú, Git rechazará tu push con un mensaje de [rejected - non-fast-forward]:

error: failed to push some refs to 'github.com:...'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing...
⛔ ¡NUNCA uses git push --force en ramas compartidas! El comando --force sobreescribe y destruye el trabajo que tus compañeros subieron. La forma correcta de solucionarlo es:
  1. Bajar primero los cambios del servidor con git pull.
  2. Resolver cualquier conflicto si lo hubiera.
  3. Ahora sí, ejecutar git push normalmente.

⚡ Comandos Clave de Publicación de Ramas con git push

Ejemplos para publicar ramas principales, ramas de funcionalidad y ramas remotas:

publicar-a-github.sh
Solo lectura
# 1. Publicar una rama nueva por primera vez vinculando upstream:
git push -u origin main

# 2. Publicar una rama de características para que un compañero la revise:
git push -u origin feature/pasarela-paypal

# 3. En los días siguientes, subir cambios rutinarios de la rama activa:
git push

# 4. Eliminar una rama que ya no se necesita directamente en el servidor remoto:
git push origin --delete feature/pasarela-paypal
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Manual Completo de Git & GitHub Profesional y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.