Mémo Git · Synchroniser

Forcer un push

git push --force

Après un rebase, un amend ou un squash, ta branche locale n'a plus le même historique que sa version distante : un push normal est refusé. git push --force remplace la branche distante par la tienne. Préfère --force-with-lease, qui refuse si quelqu'un a poussé entre-temps.

Ce que ça fait

Remplace la branche distante par ta version locale, même si leurs historiques ont divergé.

Un cas d'usage

Tu as réécrit les commits de ta branche de travail (amend, rebase, squash) déjà publiée.

Attention : Les commits distants absents de ta version locale sont perdus : à réserver à tes propres branches.

En ligne de commande

git push --force-with-lease
Force le push seulement si la branche distante est celle que tu as récupérée.
git push --force
Force sans vérification : écrase tout commit distant absent de ta version.
git push --force-with-lease origin <branche>
Cible une branche précise.

Dans Merathon

  1. Petite flèche à côté de « Push » (« Options Push ») → « Push forcé… », puis confirme.

Questions fréquentes

Pourquoi préférer --force-with-lease ?

Si un collègue a poussé sur la branche depuis ton dernier fetch, --force-with-lease refuse au lieu d'effacer ses commits.

Peut-on forcer un push sur main ?

À éviter : toute l'équipe devrait réaligner son historique. Beaucoup de forges protègent main pour l'interdire. Sur une branche partagée, utilise git revert.

Voir aussi