Menu
Coddy logo textTech

Git Force Push

Última actualización

Un git push normal se rechaza cuando tu rama local ha divergido de la remota: Git no sobrescribirá commits que quizá no hayas visto. Forzar el push anula esa comprobación y hace que la rama remota coincida con la local. Lo necesitas tras reescribir el historial (un rebase o un amend), pero puede borrar commits de otras personas, así que recurre al más seguro --force-with-lease.

Prueba esto en el terminal playground: un shell real en tu navegador, sin nada que instalar.

Un force push hace que la rama remota coincida con tu historial local reescrito - el commit divergente del remoto se descarta.

Sintaxis

CommandWhat it does
git push --forceSobrescribe la rama remota, sin comprobación de seguridad
git push -fForma abreviada de --force
git push --force-with-leaseFuerza solo si nadie más ha hecho push mientras tanto
git push --force-with-lease origin featureForce push más seguro a una rama con nombre

--force vs --force-with-lease

Behavior--force--force-with-lease
Sobrescribe el remotoSiempreSolo si no ha cambiado desde tu último fetch
Puede borrar commits de otrosLo rechaza, salvo que un fetch haya refrescado el lease
Recomendado para equiposNo

Preguntas frecuentes sobre git force push

¿Cuándo necesito forzar el push?
Cuando has reescrito historial que ya está en el remoto: tras un git rebase, un git commit --amend o un rebase interactivo que combinó commits. Tu rama local ya no coincide con el historial del remoto, por lo que un push normal se rechaza y solo un force push puede actualizarlo.
¿Cuál es la diferencia entre --force y --force-with-lease?
--force sobrescribe la rama remota sin condiciones, lo que puede eliminar en silencio commits que un compañero subió tras tu último fetch. --force-with-lease solo sobrescribe si el remoto sigue en el commit que viste por última vez; si alguien más hizo push mientras tanto, lo rechaza y protege su trabajo. Una advertencia: cualquier fetch (incluido el auto-fetch en segundo plano de un IDE) refresca el lease, así que haz push justo después de comprobar el remoto. Aun así, prefiérelo sobre --force en cualquier rama compartida.
¿Es peligroso forzar el push?
Puede serlo. En una rama compartida, un --force simple puede sobrescribir commits que otros han hecho push, borrando de hecho su trabajo del remoto. Es seguro en una rama que solo usas tú. Ante la duda, usa --force-with-lease, que falla de forma segura en lugar de aplastar cambios que no has visto.
¿Cómo deshago un force push?
Si aún tienes los commits antiguos localmente o en git reflog, puedes resetear tu rama a ellos y volver a forzar el push para restaurar el estado anterior. Esta es una razón más para usar --force-with-lease: hace que las sobrescrituras accidentales sean mucho menos probables de entrada.
¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar comandos de git push en un shell real en tu navegador, sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre el trabajo con remotos paso a paso.
Coddy programming languages illustration

Aprende Git con Coddy

COMENZAR