Trop de commits brouillons à nettoyer
Ce qui vient de se passer
Rien n'est cassé : l'historique de ta branche est juste bruyant. Tant que les commits ne sont que sur ta branche, tu peux les réécrire.
Risques potentiels
- Réécrire des commits déjà récupérés par d'autres crée des divergences.
Avant d'exécuter quoi que ce soit
- Beaucoup d'équipes squashent automatiquement au merge de la PR : vérifie avant de le faire à la main.
- Règle d'or : avant toute commande destructrice, crée une branche de secours avec git branch backup/before-fix — ça ne coûte rien.
Étapes de récupération
- 1
Branche de secours
Au cas où le résultat ne te convient pas.
Sans risque$ git branch backup/before-squash - 2
Le plus simple : tout en un seul commit
Ramène la branche là où elle a quitté main, garde toutes les modifications indexées, puis un seul commit.
Prudence$ git reset --soft $(git merge-base HEAD main)$ git commit -m "feat: the whole feature, cleanly" - 3
Plus fin : choisir commit par commit
Dans l'éditeur, remplace « pick » par « squash » (ou « fixup ») sur les commits à fusionner avec le précédent.
Prudence$ git rebase -i main - 4
Mettre à jour la branche poussée
Uniquement sur ta propre branche.
Destructrice$ git push --force-with-lease
Ces procédures sont fournies à titre informatif. Lis chaque commande et adapte-la à ta situation avant de l'exécuter. Disclaimer