Git – Cuándo usar forzar push

GIT – FORCE PUSH

¿Alguien puede decirme cuándo usar git push y cuándo hacer git push -f con un ejemplo?

Hay un caso para push --force , incluso para principiantes: cuando estás actualizando una request de extracción.

Una request de extracción significa

  • bifurca un repository en GitHub (por ejemplo)
  • clonarlo localmente
  • hacer una twig y agregar algunos parches / nuevos commits
  • empuja esa twig a tu tenedor (que es tuyo)
  • desencadena una request de extracción que notifica al propietario del repository original que desea fusionar su twig de relaciones públicas.

PERO: si ese repository original ha realizado nuevos commits propios, necesita volver a establecer la base (repetir sus commits) sobre el repository actualizado "upstream"

 git remote add upstream /url/original/repo git checkout my_pr_branch git rebase upstream/master # test everything is still working 

Al volver a establecer la database, está cambiando el SHA1 de sus nuevas confirmaciones: debe replace las confirmaciones publicadas (empujadas) de su twig de relaciones públicas por sus confirmaciones rebasadas:

 git push --force 

Eso actualizará la request de extracción existente, que tendrá en count las nuevas versiones de esas confirmaciones.
Como está presionando a su propio repository (la horquilla), y su propia sucursal (la sucursal PR), puede usar --force tantas veces como desee.


Presenté force-for-lease en 2013 , como una forma de detectar si algo le sucedió al repository remoto que desea forzar push.
Tenga en count que se volvió más robusto recientemente con Git 2.13 .