0Pricing
DevOps Bootcamp · Leçon

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 DevOps Bootcamp 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 DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp 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-repo

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

Supprimer 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-paths

Supprimer 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 10M

Réé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.txt

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

Les 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 --all

Se 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-repo remplace 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 DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp 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 DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp 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

  1. Git Reflog et récupération de l’historique
  2. Git Bisect pour le débogage
  3. Maintenance et nettoyage des dépôts
  4. Réécrire l’historique avec git filter-repo
← Retour à DevOps Bootcamp