Forcer un push avec précaution

Tute Costa
Traduit par George Kosmopoulos

A quoi ressemble "git push force" ?

Mon collègue Calle (pas sur la photo) a suggéré dans nos guides que nous préférions l'option --force-with-lease à --force à ajouter sur la commande git push. Cette option permet de forcer le push sans risquer d'écraser involontairement le travail de quelqu'un d'autre. Elle ne mettra à jour les références du branche remote que si elles ont la même valeur que la branche locale. En d'autres termes, seulement si personne n'a mis à jour la branche en amont. S'il y a de nouveaux commits distants, --force-with-lease échouera avec un message “stale info”, nous incitant à récupérer d'abord.

--force-with-lease s'intègre bien dans notre flux de travail qui consiste à rebaser et écraser les commits avant de les fusionner dans master, et nous l'utilisons si souvent que nous avons créé un alias dans notre gitconfig :

[alias]
    pf = push --force-with-lease

Je pousse maintenant toujours avec l'alias pf, ce qui fait que mon travail est toujours fusionné avec la branche en amont. Sauf si elle risque de mettre le feu à la maison.