Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git push [<remote> [<refspec>...]] [--force-with-lease] [--tags] [--delete]

Descripción

El comando git push envía commits locales a un repositorio remoto, actualizando los branches remotos para coincidir con los locales. El primer push de un nuevo branch típicamente requiere -u para configurar el seguimiento. Por defecto, push es no destructivo: rechaza sobrescribir historial remoto que no tienes localmente. Usa --force-with-lease cuando genuinamente necesites reescribir historial remoto (tras un rebase): nunca uses --force simple en branches compartidos.

Push obedece reglas del lado del servidor: protecciones de branch, revisiones requeridas, commits firmados y hooks pre-receive pueden rechazar un push. Lee el mensaje de error con cuidado cuando esto pase.

En el uso diario, git push se integra con alias de shell. Para depurar, ejecuta con GIT_TRACE=1.

Entender cómo git push interactúa con el modelo de datos de Git ayuda a evitar reescribir historial compartido.

Opciones comunes

OpciónDescripción
-u, --set-upstreamEstablece upstream para predeterminados de futuros push/pull.
--force-with-leaseForce push solo si la ref remota coincide con tu último valor descargado.
--force / -fSobrescribe historial remoto a la fuerza (peligroso en branches compartidos).
--tagsPushea todos los tags locales.
--deleteElimina un branch remoto.
--dry-runMuestra lo que se pushearía.
--allPushea todos los branches.
--atomicActualización todo-o-nada de múltiples refs.

Ejemplos

git push -u origin feature/login
# Primer push de un nuevo branch con seguimiento

git push --force-with-lease
# Alternativa más segura a --force tras rebase

git push origin --delete old-feature
# Elimina un branch remoto

git push --tags
# Publica todos los tags locales

Errores comunes

El simple --force puede borrar commits de colegas. Usa --force-with-lease en su lugar. Pushear directamente a main evita la revisión de código en muchos equipos: configura protección de branch. Olvidar -u significa que comandos git push futuros necesitan argumentos explícitos.

Comandos relacionados

git fetch, git pull, git remote, git tag