TIL : git push force with lease
Bonjour,
J'ai l'habitude de rebaser mes PR avec un git rebase puis un force push, et j'ai découvert ma nouvelle meilleure amie : git push --force-with-lease, grâce à mes collègues.
Git rebase ?
Git rebase permet de réécrire l'historique des commits d'une branche donnée. Vous pouvez consulter la documentation complète de git push. Si vous débutez ou si vous n'êtes pas encore à l'aise avec git, j'aime beaucoup ce site pour apprendre git et pratiquer en même temps. Vous pouvez réécrire l'historique de vos commits puis faire un force push.
--force vs --force-with-lease
La différence entre --force et --force-with-lease, c'est qu'avec --force-with-lease, le push ne se fera que si vous n'écrasez aucun travail sur la branche distante, dans le cas où d'autres commits y auraient été ajoutés. Si c'est le cas, le push sera annulé et vous obtiendrez une erreur.
--force écrasera tout le travail présent sur la branche distante, qu'il y ait du nouveau ou non. Comme vous pouvez le voir, --force-with-lease est une option plus sûre si vous ne voulez pas écraser le travail de quelqu'un d'autre en faisant un force push.
Bonus : --force-if-includes
J'ai découvert aujourd'hui via Mastodon qu'Adam Johnson avait écrit un article sur le sujet avant celui-ci, il vaut le détour. J'y ai aussi découvert --force-if-includes : vous pouvez en apprendre plus dans son article.
C'est tout pour le moment ! J'espère que ça sera utile à quelqu'un.