J'ai envoyé mon fichier .env sur GitHub
Ce qui vient de se passer
Tes secrets (clés d'API, mots de passe, tokens) sont dans l'historique du dépôt. Des bots scannent les dépôts publics en quelques secondes. Supprimer le fichier dans un nouveau commit ne le retire PAS de l'historique.
Risques potentiels
- Les clés exposées peuvent être exploitées immédiatement (factures cloud, vol de données).
- Les forks et clones gardent une copie même après le nettoyage de l'historique.
Avant d'exécuter quoi que ce soit
- ÉTAPE ZÉRO : révoque et régénère chaque secret du fichier. Nettoyer l'historique ne suffit pas.
- Vérifie les journaux de tes fournisseurs pour détecter un usage suspect.
- La réécriture de l'historique nécessite un clone de sauvegarde et l'accord de l'équipe.
- Règle d'or : avant toute commande destructrice, crée une branche de secours avec git branch backup/before-fix — ça ne coûte rien.
Étapes de récupération
- 1
Arrêter de suivre le fichier
Retire .env de l'index tout en le gardant sur ton disque, puis empêche qu'il revienne.
Sans risque$ git rm --cached .env$ echo ".env" >> .gitignore$ git commit -m "chore: stop tracking .env" - 2
Faire un clone de sauvegarde
Un clone miroir, au cas où l'étape suivante tourne mal.
Sans risque$ git clone --mirror git@github.com:OWNER/REPO.git backup-repo.git - 3
Effacer le fichier de tout l'historique
git filter-repo (à installer séparément) réécrit chaque commit et tous les hash changent. Il retire aussi le remote « origin » : rajoute-le avant de pousser (git remote add origin <url>).
Destructrice$ git filter-repo --force --invert-paths --path .env - 4
Pousser l'historique nettoyé
Tout le monde devra ensuite re-cloner. Sur GitHub, contacte aussi le support pour purger les vues en cache et les références de PR.
Destructrice$ git push --force --all origin$ git push --force --tags origin
Ces procédures sont fournies à titre informatif. Lis chaque commande et adapte-la à ta situation avant de l'exécuter. Disclaimer