Git cache des fichiers ignorés dans vos dépôts : le piège à éviter

Vous avez ajouté .env à .gitignore, soulagé, et passé à autre chose… pour découvrir plus tard que ce fichier traîne toujours dans votre dépôt, poussé sur GitHub et cloné par tous. Ce n’est pas un hasard. C’est ainsi que Git fonctionne par conception : .gitignore empêche uniquement l’ajout de fichiers non suivis. Tout ce qui est déjà validé reste suivi, règle d’ignorance ou non.
## Le nettoyage caché dont vous ignoriez avoir besoin
C’est là qu’intervient gitslip : un outil CLI sans dépendance qui scanne votre dépôt et signale chaque fichier suivi que vos propres règles d’ignorance désignent comme ignoré. Lancez npx gitslip et vous obtiendrez un résultat comme :
2 fichiers suivis sont ignorés par vos règles mais restent validés : config/secrets.env ↳ .gitignore:7 *.env logs/app.log ↳ .gitignore:2 *.log
La sortie indique même quelle règle a identifié chaque fichier, éliminant toute ambiguïté. Pour corriger le problème, utilisez gitslip --apply afin d’exécuter git rm --cached sans supprimer la copie locale.
## Pourquoi grep ne suffit pas — et pourquoi gitslip si
Vous pourriez rechercher vos motifs .gitignore dans git ls-files, mais cette méthode omet des subtilités essentielles. Les règles de négation (!important.log), les fichiers .gitignore imbriqués ou les paramètres d’ignorance globaux peuvent fausser les résultats. gitslip évite de réinventer la logique d’ignorance de Git en s’appuyant directement sur Git.
En interne, il combine git ls-files -i -c --exclude-standard pour repérer les fichiers à la fois suivis et ignorés, puis utilise une astuce avec git check-ignore -v sur un index vide pour identifier précisément la règle correspondante — sans faux positifs.
## Une protection pour les équipes et les pipelines CI
Disponible en versions Node et Python (npx gitslip ou pip install gitslip), l’outil produit des résultats identiques dans les deux cas. Il est conçu pour faire échouer les builds lorsqu’un fichier ignoré s’infiltre, en sortant avec un statut 1 si des fichiers sont détectés. Pour les équipes qui exécutent git add -A avant d’écrire .gitignore, c’est un moyen simple d’intercepter les erreurs avant qu’elles ne deviennent des risques de sécurité ou un encombrement du dépôt.
Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

