Purger un fichier de l'historique

GitGitBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Git est un système de contrôle de versions populaire qui permet aux développeurs de suivre les modifications de leur base de code. Cependant, parfois il est nécessaire de supprimer complètement un fichier de l'historique du référentiel. Ce laboratoire vous guidera tout au long du processus de purge d'un fichier de l'historique de Git.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/DataManagementGroup -.-> git/filter("Apply Filters") subgraph Lab Skills git/filter -.-> lab-12747{{"Purger un fichier de l'historique"}} end

Purge a file from history

Supposons que vous ayez accidentellement commis un fichier contenant des informations sensibles, telles que des clés API ou des mots de passe, dans votre référentiel Git. Vous réalisez que ce fichier n'aurait jamais dû être commis et que vous voulez le supprimer complètement de l'historique du référentiel. Cependant, simplement supprimer le fichier et commettre le changement ne le supprimera pas de l'historique du référentiel. Le fichier sera toujours accessible dans les commits précédents, ce qui pourrait représenter un risque de sécurité.

Pour terminer ce laboratoire, vous utiliserez le référentiel Git git-playground de votre compte GitHub, qui provient d'un fork de https://github.com/labex-labs/git-playground.git. Ce référentiel contient un fichier nommé file1.txt qui n'aurait jamais dû être commis. Pour purger file1.txt de l'historique du référentiel, suivez ces étapes :

  1. Clonez le référentiel sur votre machine locale :
git clone https://github.com/your-username/git-playground
  1. Utilisez les commandes suivantes pour naviguer dans le répertoire et configurer l'identité :
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
  1. Supprimez le fichier de l'index du référentiel.
git rm --cached --ignore-unmatch file1.txt
  1. Commettez ce changement avec le message de commit "Remove sensitive file1.txt" :
git commit -m "Remove sensitive file1.txt"
  1. Rédigez à nouveau l'historique du référentiel, en supprimant toutes les instances de file1.txt :
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch file1.txt" --prune-empty --tag-name-filter cat -- --all
  1. Poussez les changements vers le référentiel distant en forçant :
git push origin --force --all

Après avoir effectué ces étapes, file1.txt sera complètement supprimé de l'historique du référentiel et après avoir exécuté git log --remotes, vous ne verrez pas le commit sur file1.txt.

Summary

Purger un fichier de l'historique de Git est une étape nécessaire lorsqu'une information sensible a été accidentellement commise. Ce laboratoire vous a guidé tout au long du processus de purge d'un fichier de l'historique de Git en utilisant la commande git filter-branch. N'oubliez pas d'être prudent lorsqu'il s'agit de rediger l'historique d'un référentiel, car cela peut avoir des conséquences imprévues.