---
title: Forcer un push avec précaution
teaser: Un `git push --force` plus doux.`.
tags: git
author: Tute Costa
published_on: 2016-03-10
---

![A quoi ressemble "git push force" ?](https://images.thoughtbot.com/git-push-force-with-lease/XEDULrg2QsnzIGytOMfh_XFQLB.jpg)

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`][pr] à 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.
[Calle]: https://twitter.com/calleerlandsson
[pr]: https://github.com/thoughtbot/guides/pull/363

`--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] :

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

[rebaser et écraser les commits]: https://thoughtbot.com/blog/git-interactive-rebase-squash-amend-rewriting-history
[alias]: https://github.com/thoughtbot/dotfiles/pull/431

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.
