Réécrire l’historique avec git filter-repo
Apprenez à réécrire l’historique d’un dépôt à grande échelle pour supprimer des fichiers volumineux ou des données sensibles avec git filter-repo.
Réécrire l’historique avec git filter-repo est une leçon Git & GitHub Professional Workflow gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Git & GitHub Professional Workflow, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Git & GitHub Professional Workflow comprend 4 leçons au total.
Pourquoi réécrire l'historique ?
Vous devez parfois réécrire l'intégralité de l'historique d'un dépôt : pour supprimer un mot de passe divulgué, supprimer des fichiers volumineux ajoutés par erreur ou corriger les adresses e-mail des auteurs dans toutes les validations.
Découvrir git filter-repo
git filter-repo est l'outil moderne et rapide pour réécrire l'historique. Il remplace l'ancien outil lent git filter-branch.
Installer l'outil
Il s'agit d'un programme distinct, souvent installé avec pip ou un gestionnaire de paquets.
pip install git-filter-repoToujours travailler sur un clone
La réécriture de l'historique est destructive. Travaillez sur un clone propre afin de pouvoir le supprimer si quelque chose se passe mal.
git clone --mirror git@github.com:you/repo.gitSupprimer un fichier de l'historique
Pour supprimer un fichier de toutes les validations, utilisez les options --path et --invert-paths.
git filter-repo --path secrets.env --invert-pathsSupprimer les objets volumineux
Vous pouvez supprimer les fichiers dépassant un seuil de taille afin de réduire un dépôt devenu excessivement volumineux.
git filter-repo --strip-blobs-bigger-than 10MRéécrire les adresses e-mail des auteurs
Corrigez une adresse e-mail d'auteur incorrecte dans toutes les validations avec un fichier mailmap ou une fonction de rappel.
git filter-repo --mailmap my-mailmap.txtRemplacer du texte dans l'historique
Supprimez les chaînes secrètes partout où elles apparaissent à l'aide d'un fichier d'expressions.
git filter-repo --replace-text expressions.txtLes empreintes des validations changent
La réécriture de l'historique produit de nouvelles empreintes de validation pour tout ce qui est affecté. L'historique du dépôt diverge de celui des anciennes copies.
Forcer l'envoi du résultat
Après la réécriture, vous devez forcer l'envoi, car l'historique distant ne correspond plus.
git push --force --allSe coordonner avec l'équipe
Comme les clones de tout le monde sont désormais obsolètes, les membres de l'équipe doivent cloner à nouveau le dépôt. Annoncez la réécriture pour éviter de réintroduire les données supprimées.
Vérification rapide
Vérifiez votre compréhension de la réécriture de l'historique.
Récapitulatif
Vous avez appris à réécrire l'historique :
git filter-reporemplace filter-branch- Supprimez des fichiers, des objets volumineux ou du texte secret de tout l'historique
- Travaillez toujours sur un clone ; les empreintes des validations changent
- Forcez l'envoi, puis faites cloner à nouveau le dépôt par l'équipe
Questions Fréquemment Posées
La leçon « Réécrire l’historique avec git filter-repo » est-elle gratuite ?
Oui — le texte complet de « Réécrire l’historique avec git filter-repo » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Git & GitHub Professional Workflow, passe à CoddyKit PRO. Le cours Git & GitHub Professional Workflow comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Réécrire l’historique avec git filter-repo » ?
Apprenez à réécrire l’historique d’un dépôt à grande échelle pour supprimer des fichiers volumineux ou des données sensibles avec git filter-repo. Tu pratiques Git & GitHub Professional Workflow avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Git & GitHub Professional Workflow ?
Aucune expérience préalable n'est requise. Git & GitHub Professional Workflow sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Réécrire l’historique avec git filter-repo » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Git & GitHub Professional Workflow ?
Oui. Chaque leçon Git & GitHub Professional Workflow inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Git Reflog et récupération de l’historique
- Git Bisect pour le débogage
- Maintenance et nettoyage des dépôts
- Réécrire l’historique avec git filter-repo