Git ne jette presque rien. Les commits que vous croyez perdus sont
accessibles via git reflog pendant 90 jours. Les fichiers sensibles
accidentellement commités peuvent être expurgés de tout l’historique.
Les bugs apparus subitement peuvent être localisés au commit près en
quelques minutes.
Ces trois situations semblent graves — elles sont toutes récupérables avec la bonne commande.
Quel est votre problème ?
Section intitulée « Quel est votre problème ? »| Situation | Outil | Guide |
|---|---|---|
| J’ai supprimé une branche par erreur | git reflog | Récupérer des données perdues |
J’ai fait reset --hard et perdu des commits | git reflog | Récupérer des données perdues |
| J’ai commité un fichier sensible (pas encore pushé) | git reset HEAD~1 + .gitignore | Nettoyer l’historique et les fichiers |
| J’ai commité et pushé un secret | git filter-repo + révoquer le secret | Nettoyer l’historique et les fichiers |
| Un bug est apparu, je ne sais pas depuis quel commit | git bisect | Diagnostiquer des problèmes |
| Je veux identifier qui a introduit une ligne de code | git blame | Diagnostiquer des problèmes |
Guides de cette section
Section intitulée « Guides de cette section » Récupérer des données perdues Reflog, fsck, ORIG_HEAD : retrouvez vos commits, branches et travail que vous croyiez perdus.
Nettoyer l'historique et les fichiers git rm --cached, filter-repo, .gitignore : supprimer un fichier sensible de l'historique complet.
Diagnostiquer des problèmes bisect, blame, log -S : localiser le commit qui a introduit un bug ou une régression.
À retenir
Section intitulée « À retenir »git reflogest le filet de sécurité ultime — consultez-le avant toute tentative de récupérationgit bisectlocalise un commit coupable en O(log n) — 10 commits à tester sur 1 000 si le test est automatiségit filter-repo(pasfilter-branch) est l’outil recommandé pour réécrire l’historique globalement- Après un
filter-repopushé, tous les membres de l’équipe doivent refaire ungit clone— prévenir avant - Un fichier dans
.gitignoren’est pas retiré de l’historique existant — il fautgit rm --cacheden plus
Prochaines étapes
Section intitulée « Prochaines étapes » Opérations Git Vue d'ensemble de tous les guides de résolution de problèmes Git.
Outils Git avancés Staging interactif, stash, rebase interactif : les commandes puissantes du quotidien.