Comment désindexer des fichiers commités

Git est un outil très puissant qui peut sembler compliqué si nous le connaissons mal. Dans cet article, nous verrons le cas particulier des mauvaises indexations.

C’est un cas qui peut très facilement se produire lorsque l’on maîtrise mal l’outil, mais pas de panique, il n’y a rien d’irréparable. Vous pourrez vous tromper, vous corriger, recommencer et apprendre à votre rythme avec l’astuce de cet article.

Éviter d’indexer les mauvais fichiers

Il y a des fichiers que nous ne voulons pas versionner avec Git. Par exemple, les dépendances d’un projet (le répertoire node_modules pour un projet Node.js), les fichiers contenant des variables d’environnement ou d’autres fichiers autogénérés/temporaires.

Le fichier .gitignore nous permettra de spécifier à Git la liste des fichiers que nous ne souhaitons pas prendre en compte. Créez-le à la racine de votre projet.

Vous pouvez y indiquer des fichiers, des dossiers ou des globs comme ceci :

.env
/node_modules
npm-debug.log*

Une fois ajoutés à cette liste, les fichiers incriminés seront comme invisibles aux yeux de Git. Il n’y aura plus aucun moyen de les ajouter par erreur.

Supprimer un fichier de l’index

Mais il arrive que nous nous rendions compte qu’un fichier ne devrait pas être indexé uniquement après l’avoir commité. Un malheureux git add . ou une utilisation pas assez régulière de git status peuvent mener facilement à cette situation.

Si cela arrive, une commande simple existe : git rm.

git rm -r --cached nom_de_votre_fichier

Il vous suffira ensuite de commiter la suppression de l’index :

git add nom_de_votre_fichier
git commit

Voilà. Le dossier ou fichier intempestif ne devrait plus vous embêter. Par contre, pensez bien à l’ajouter à votre fichier .gitignore pour ne pas le commiter par erreur à nouveau. Je vous renvoie à la première partie de l’article pour savoir comment faire.