← Glosario
Desarrollo

¿Qué es Git Push?

Git Push es un comando fundamental de Git que transfiere los bloques de código confirmados (committed), el historial de confirmaciones y los objetos desde su entorno de desarrollo local a un servidor Git remoto, actualizando la rama remota.

1. Definición y el modelo de datos de 4 capas de Git

Git es un sistema de control de versiones distribuido (DVCS). En esta arquitectura, los cambios de código pasan por 4 áreas de trabajo diferentes antes de llegar a un servidor remoto:

[Çalışma Dizini] ──git add──> [Staging / Index] ──git commit──> [Yerel Depo] ──git push──> [Uzak Depo]
(Working Directory)            (Hazırlık Alanı)                 (.git veritabanı)            (GitHub/GitLab)
  1. Working Directory (Directorio de trabajo): El espacio de código activo donde editas los archivos.
  2. Staging Area / Index (Área de preparación): los cambios que seleccionas con git add para incluirlos en la próxima confirmación.
  3. Repositorio Local (Yerel Depo): puntos de control sellados permanentemente en el directorio .git de su propio disco mediante git commit.
  4. Repositorio remoto: el servidor central que se puede ver con git push por los compañeros de equipo y donde se activarán las canalizaciones de CI/CD.

Cuando se ejecuta git push, no solo se envían las diferencias de texto; los objetos Commit, Tree y Blob de la base de objetos de Git se transfieren al servidor remoto en un archivo de paquete comprimido (packfile) y la referencia de rama remota se adelanta.

Analogía: Es como guardar los capítulos de un libro que escribiste en tu ordenador en tu carpeta de borradores local, y luego entregarlos mediante un servicio de mensajería al centro de impresión compartido de la imprenta diciendo "sube estos capítulos al archivo oficial y ponlos en la cola de impresión".

2. Plantillas de comandos más utilizadas (Cheatsheet)

Enviar una rama por primera vez y vincular upstream

git push -u origin feature/auth

El indicador -u o --set-upstream vincula permanentemente su rama local con la rama remota. Después de este emparejamiento, basta con escribir solo git push o git pull mientras se encuentra en la misma rama.

Forzado seguro de envío: --force-with-lease

git push --force-with-lease

Cuando git push estándar es rechazado después de git commit --amend o git rebase, usar git push -f puede borrar las confirmaciones de tus compañeros en el servidor. --force-with-lease, por otro lado, es un bloqueo de seguridad que solo permite sobrescribir si nadie más ha enviado confirmaciones a esa rama después de ti.

Eliminar una rama remota y etiquetas

git push origin --delete eski-ozellik-dali
git push origin --tags

3. Errores más comunes de Git Push y sus soluciones

  • fatal: [rejected - non-fast-forward]: Hay confirmaciones en la rama remota que aún no están en la local. Para solucionarlo, ejecute git pull --rebase origin <rama> y luego git push.
  • fatal: The current branch has no upstream branch: La rama actual no tiene una rama upstream definida. Solución: git push -u origin HEAD.
  • remote rejected: pre-receive hook declined: Bloqueado por regla de rama protegida o falta de permisos; se debe abrir un Pull Request (PR) en lugar de hacer push directo.

Preguntas y respuestas

¿Qué significa Git push y para qué sirve?

Git Push es el comando fundamental que sincroniza los repositorios remotos con el estado local al cargar los commits completados en tu ordenador local en servidores remotos como GitHub, GitLab o Bitbucket.

¿Qué significa el indicador -u en el comando git push -u origin main?

El indicador -u (--set-upstream) establece una conexión de seguimiento (tracking) entre la rama local y la rama remota. De esta manera, en las próximas ocasiones puedes escribir simplemente git push sin especificar el destino.

¿Por qué se debería usar --force-with-lease en lugar de git push -f?

git push -f elimina permanentemente los cambios realizados por otras personas en el repositorio remoto sin verificarlos. Por otro lado, --force-with-lease protege el código de los compañeros de equipo al permitir la sobrescritura únicamente si la rama se encuentra en el estado que obtuviste por última vez.

¿Cómo se soluciona el error non-fast-forward?

Ocurre porque los nuevos commits en el repositorio remoto aún no están en tu entorno local. Para solucionarlo, debes ejecutar git pull --rebase origin <rama> para actualizar los commits y luego volver a hacer git push.

Términos relacionados

Herramientas relacionadas

Esta explicación se redactó en lenguaje sencillo para TreScout con IA y se tradujo automáticamente del original en turco · prevalece la versión turca. Si algo le parece erróneo o incompleto, escriba a hello@trescout.com. Leer en turco →