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
- 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.