El comando git push sube el contenido de un re­po­si­to­rio local a un re­po­si­to­rio central. Dado que este comando so­bre­s­cri­be los cambios, solo debe eje­cu­tar­se con una rama vacía como objetivo.

Dominios web
Compra y registra tu dominio ideal
  • Gratis SSL Wildcard para tra­n­s­fe­re­n­cias de datos más seguras
  • Gratis registro privado para más pri­va­ci­dad

¿Qué es git push?

Con Git, puedes trabajar en un proyecto tra­n­qui­la­me­n­te y sin correr riesgos, mientras que los miembros de tu equipo continúan al mismo tiempo con sus re­s­pe­c­ti­vas tareas. El uso de re­po­si­to­rios in­di­vi­dua­les lo hace posible. Sin embargo, cuando hayas co­m­ple­ta­do tus cambios y quieras in­te­grar­los en todo el proyecto, el comando Git git push puede ayudarte. Con este comando, subes el contenido de tu re­po­si­to­rio local al re­po­si­to­rio remoto, que a su vez es accesible para los demás de­sa­rro­lla­do­res. Por tanto, git push es una he­rra­mie­n­ta muy im­po­r­ta­n­te para el éxito de tu proyecto.

El comando funciona como co­n­tra­par­te a git fetch o git pull. Mientras que estos dos comandos te permiten extraer contenido de un re­po­si­to­rio remoto a tu re­po­si­to­rio local, git push va en sentido contrario. A través de estos comandos, muchos pasos tienen lugar si­mu­l­tá­nea­me­n­te (en esto Git se di­fe­re­n­cia de SVN. Una vez co­m­ple­ta­dos los cambios, basta con subirlos al re­po­si­to­rio remoto. Es im­po­r­ta­n­te tener en cuenta que git push so­bre­s­cri­be otros cambios, por lo que el comando debe uti­li­zar­se con cuidado.

Sintaxis y fu­n­cio­na­li­dad de git push

La sintaxis de git push es sencilla. Primero escribes el comando en sí, luego es­pe­ci­fi­cas el re­po­si­to­rio remoto y después la rama local que quieres subir. Cuando se escribe tiene este aspecto:

git push <remote-repository> <rama-local></rama-local></remote-repository>

A co­n­ti­nua­ción, Git crea una rama local en el re­po­si­to­rio de destino y sube todo el contenido, los commits y los objetos internos. Sin embargo, como ca­ra­c­te­rí­s­ti­ca de pro­te­c­ción, el sistema de control de versiones bloquea el git push si la carga no puede rea­li­zar­se en una fusión rápida. Esto evita que los commits sean so­bre­s­cri­tos ac­ci­de­n­ta­l­me­n­te por el comando.

Ejemplo de git push

En el siguiente ejemplo, te mo­s­tra­re­mos cómo es un git push en la práctica. Su­po­n­ga­mos que has realizado cambios en tu re­po­si­to­rio local, los has probado am­plia­me­n­te y los has dado por buenos. En el siguiente paso, estos cambios están listos para el re­po­si­to­rio remoto para que los demás miembros de tu equipo también puedan acceder a ellos. Para ello, ahora uti­li­za­mos varios comandos que siempre tendrás a mano con la práctica hoja de Git Cheat en PDF de­s­ca­r­ga­ble.

git checkout main
git fetch origin main
git rebase -I origin/main
# Squash commits, fix up commit messages etc.
git push origin main

Con el comando git checkout cambiamos a la rama principal. Con git fetch nos ase­gu­ra­mos de que el re­po­si­to­rio local se co­rre­s­po­n­de con el estado del re­po­si­to­rio central. El comando git rebase fusiona el estado del re­po­si­to­rio central con el de tu re­po­si­to­rio local. Esto permite hacer una fusión rápida más adelante, ya que la base de los re­po­si­to­rios centrales y locales es la misma. A co­n­ti­nua­ción, se realiza el git push pro­pia­me­n­te dicho, que transmite tu estado actual in­clu­ye­n­do todos los cambios al re­po­si­to­rio central.

Otras opciones del comando

Además del comando estándar explicado an­te­rio­r­me­n­te, también hay otras opciones para git push.

Cargar todas las ramas

git push <remote-repository> --all</remote-repository>

Este comando es similar al estándar, pero en lugar de subir una rama se­le­c­cio­na­da, sube todas las ramas locales di­re­c­ta­me­n­te al re­po­si­to­rio central. De esta forma, no tendrás que hacer este trabajo paso por paso.

Subir etiquetas

git push <remote-repository> --tags</remote-repository>

Con esta opción se envían todas las etiquetas locales al re­po­si­to­rio remoto. Las etiquetas no se incluyen en un git push ordinario.

Forzar git push

git push <remote-repository> --force</remote-repository>

Este comando co­rre­s­po­n­de a la versión estándar, pero también realiza el git push si no es posible la fusión rápida. Dado que esto aumenta el riesgo de que puedas so­bre­s­cri­bir los cambios y, por tanto, causar problemas, deberías evitar utilizar esta variante.

Git push en un re­po­si­to­rio vacío

Para asegurar que los proyectos más grandes no se vean dañados por git push, se re­co­mie­n­da tra­n­s­fe­rir solo a los re­po­si­to­rios vacíos. Se crean con la opción “--bare”. Cuando se tra­n­s­fie­re a re­po­si­to­rios vacíos, los cambios y el progreso de otros de­sa­rro­lla­do­res y la es­tru­c­tu­ra del re­po­si­to­rio remoto no se ven afectados.

Eliminar ramas con git push

También puedes utilizar git push para eliminar una rama de forma local y remota. El comando co­rre­s­po­n­die­n­te tiene el siguiente aspecto:

git branch -d rama_antigua
git push origin :rama_antigua

Con ello, se elimina la rama “rama_antigua” del re­po­si­to­rio remoto.

Consejo

Im­ple­me­n­ta páginas web y apli­ca­cio­nes online en solo tres pasos. Con Deploy Now de IONOS te be­ne­fi­cia­rás de una rápida co­n­fi­gu­ra­ción y máxima es­ca­la­bi­li­dad. Reserva ahora y prueba Deploy Now durante un mes de forma gratuita.

Ir al menú principal