J'ai push directement sur main
Ce qui vient de se passer
Tes commits sont maintenant sur la branche main partagée. Tes collègues les ont peut-être déjà récupérés et la CI est peut-être déjà en train de les déployer.
Risques potentiels
- Du code non testé peut être déployé en production.
- Un force push pour les retirer casserait le dépôt de tous ceux qui ont déjà pull.
Avant d'exécuter quoi que ce soit
- Préviens ton équipe avant de faire quoi que ce soit. Sérieusement.
- Préfère git revert : il ajoute un commit qui annule le tien, sans réécrire l'historique.
- 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
Garder ton travail sur une branche
Sauvegarde tes commits sur une branche de feature pour ouvrir une vraie PR ensuite.
Sans risque$ git branch feature/my-work - 2
Identifier les commits à annuler
Liste les derniers commits du main distant.
Sans risque$ git fetch origin$ git log --oneline -n 10 origin/main - 3
Les annuler avec revert (recommandé)
Crée de nouveaux commits qui annulent les tiens. L'historique reste intact et personne ne casse son dépôt.
Prudence$ git switch main$ git revert --no-edit abc1234..def5678$ git push origin main - 4
Dernier recours : réécrire main
Seulement si PERSONNE n'a encore pull et que la protection de branche le permet. --force-with-lease refuse de pousser si quelqu'un d'autre a poussé entre-temps.
Destructrice$ git switch main$ git reset --hard origin/main~1$ git push --force-with-lease origin main
Ces procédures sont fournies à titre informatif. Lis chaque commande et adapte-la à ta situation avant de l'exécuter. Disclaimer