El comando git push sube el contenido de un re­po­si­to­rio local a un re­po­si­to­rio central. De forma pre­de­te­r­mi­na­da, Git solo permite los push que no so­bre­s­cri­ben ningún commit en el re­po­si­to­rio de destino. Si eludes esta pro­te­c­ción con la opción “--force”, puedes perder los cambios de otras personas.

Compra y registra tu dominio ideal

Encuentre rá­pi­da­me­n­te el dominio que desea y cómprelo a un precio ventajoso. SSL y funciones pro­fe­sio­na­les incluidas.

¿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 puede so­bre­s­cri­bir otros cambios si se usa con la opción “--force”, 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>
bash

A co­n­ti­nua­ción, Git crea o actualiza la rama co­rre­s­po­n­die­n­te 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 Git Cheat Sheet 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
bash

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
bash

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
bash

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
bash

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 bare

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 bare. Se crean con git init --bare o git clone --bare. Un re­po­si­to­rio bare no tiene di­re­c­to­rio de trabajo en el que alguien trabaje di­re­c­ta­me­n­te, por lo que un push no puede alterar ningún archivo extraído (checked out) en él. Por eso, de forma pre­de­te­r­mi­na­da, Git rechaza un push a la rama extraída de un re­po­si­to­rio que tiene di­re­c­to­rio de trabajo.

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
bash

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