Recherche…


Introduction

Si vous validez des données sensibles, telles qu'un mot de passe ou une clé SSH dans un référentiel Git, vous pouvez le supprimer de l'historique. Pour supprimer entièrement les fichiers indésirables de l'historique d'un référentiel, vous pouvez utiliser la commande git filter-branch ou BFG Repo-Cleaner.

Remarques

  1. Indiquez à vos collaborateurs de rebaser, et non de fusionner, les branches qu’ils ont créées à partir de votre historique de référentiel (corrompu). Un engagement de fusion pourrait réintroduire tout ou partie de l’histoire viciée que vous venez d’évacuer.

  2. Après un certain temps et si vous êtes sûr que git filter-branch n'a pas eu d'effets secondaires inattendus, vous pouvez forcer le déréférencement de tous les objets de votre référentiel local et la récupération des données avec les commandes suivantes (en utilisant Git 1.8.5 ou plus récent):

    git for-each-ref --format = 'supprimer% (refname)' refs / original | git update-ref --stdin

    git reflog expire --expire = now --all

    git gc --prune = maintenant

Utiliser une branche de filtre

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all

Ajoutez votre fichier avec des données sensibles à .gitignore pour vous assurer de ne pas le commettre accidentellement.

echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"

Poussez votre repo local sur GitHub

git push origin --force --all

Afin de supprimer le fichier sensible de vos versions étiquetées, vous devrez également pousser de force contre vos tags Git:

git push origin --force --tags

Utilisation du nettoyant repo BFG

BFG Repo cleaner est une alternative à git filter-branch. Il peut être utilisé pour supprimer des données sensibles ou des fichiers volumineux qui ont été commis à tort, comme des fichiers binaires compilés à partir de la source. Il est écrit en Scala.

Site web du projet: BFG Repo Cleaner

Exigences

L'environnement d'exécution Java (Java 7 ou supérieur - BFG v1.12.3 était la dernière version à prendre en charge Java 6). La bibliothèque Scala et toutes les autres dépendances sont intégrées dans le fichier jar.

Supprimer des fichiers contenant des données sensibles

bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow