Skip to content

Latest commit

 

History

History
17 lines (10 loc) · 2.22 KB

12-filter-branch.md

File metadata and controls

17 lines (10 loc) · 2.22 KB

Git filter-branch

Si vous avez ajouté un fichier à l'historique Git qui contient un secret (comme un mot de passe ou une clé API) et que vous souhaitez le supprimer de l'historique Git, il est important de procéder avec précaution car cela peut avoir des répercussions sur l'intégrité de l'historique Git et de votre projet en général. Voici les étapes que vous pouvez suivre pour supprimer un fichier contenant un secret :

  1. Tout d'abord, il est important de supprimer le fichier du répertoire de travail et de le confirmer avec un commit. Cela peut être fait en utilisant la commande git rm suivi du nom du fichier, puis git commit avec un message approprié.

  2. Ensuite, vous devez utiliser la commande git filter-branch pour réécrire l'historique Git et supprimer le fichier du répertoire Git. Vous pouvez utiliser l'option --tree-filter pour supprimer le fichier à partir de chaque commit dans l'historique Git. Par exemple, la commande suivante va parcourir tous les commits dans l'historique Git et supprimer le fichier "/mon/secret.txt" du répertoire Git à chaque commit.

git filter-branch --tree-filter 'rm -f /mon/secret.txt' HEAD
  1. Une fois la commande git filter-branch exécutée, vous devez forcer le push de la branche modifiée vers le référentiel distant à l'aide de la commande git push --force. Il est important de noter que cette opération réécrit l'historique Git de la branche et force le référentiel distant à accepter la nouvelle version de l'historique Git. Par conséquent, vous devez être sûr que personne d'autre n'a travaillé sur la branche en question avant de procéder à cette étape.

  2. Enfin, vous pouvez informer les autres développeurs travaillant sur le projet de l'opération que vous avez effectuée pour éviter tout conflit potentiel avec leurs copies locales du référentiel.

Il est important de noter que la suppression d'un fichier de l'historique Git peut avoir des conséquences imprévues, telles que la modification de l'historique de la branche et la suppression de certains commits. Par conséquent, il est recommandé de procéder avec prudence et de prendre des mesures pour éviter que des secrets ne soient ajoutés à l'historique Git à l'avenir.