HOWTO · Git

Comment supprimer les fichiers non suivis dans Git

Prévisualisez les fichiers non suivis avec git clean, puis supprimez des fichiers ou des répertoires en toute sécurité. Découvrez comment -x et -X traitent les fichiers ignorés.

Sur cette page

Pour supprimer des fichiers non suivis dans Git, prévisualisez les éléments concernés avec git clean -n, puis exécutez git clean -f après avoir vérifié la liste. Ajoutez -d si vous souhaitez également supprimer les répertoires non suivis. git clean supprime des fichiers de votre arborescence de travail ; Git ne peut pas restaurer les fichiers non suivis qui n’ont été ni validés ni indexés.

Prévisualiser les fichiers non suivis avant le nettoyage

Un fichier non suivi se trouve dans votre arborescence de travail, mais n’a pas été ajouté à l’index de Git ; il n’est donc pas inclus dans les commits. Exécutez git status pour afficher les chemins non suivis. Git peut regrouper sous le nom d’un répertoire les fichiers qui se trouvent dans un répertoire non suivi. Si vous voulez conserver un fichier et commencer à le suivre, utilisez git add <file> au lieu de le supprimer avec le nettoyage.

Avant toute suppression, prévisualisez les fichiers non suivis avec git clean -n. L’option -n effectue une simulation : Git affiche les fichiers qu’il supprimerait, sans les effacer. Pour inclure les répertoires non suivis dans l’aperçu, utilisez git clean -n -d. Vérifiez chaque chemin affiché ; par défaut, les fichiers ignorés ne sont pas inclus.

Supprimer les fichiers et répertoires non suivis

Après avoir vérifié l’aperçu, utilisez -f pour autoriser la suppression. Cet exemple autonome crée un dépôt Git temporaire, prévisualise un fichier non suivi, puis le supprime. Votre dépôt actuel n’est pas modifié. La sortie observée affiche d’abord notes.txt comme élément à supprimer, puis confirme sa suppression.

scratch=$(mktemp -d)
trap 'rm -rf "$scratch"' EXIT
git -C "$scratch" init -q
printf 'temporary file\n' > "$scratch/notes.txt"
LC_ALL=C git -C "$scratch" clean -n
LC_ALL=C git -C "$scratch" clean -f
Would remove notes.txt
Removing notes.txt

Dans votre arborescence de travail, utilisez git clean -f pour supprimer les fichiers non suivis et git clean -f -d pour supprimer les fichiers et répertoires non suivis. Commencez par lancer l’aperçu correspondant, git clean -n ou git clean -n -d, puis vérifiez les éléments proposés. Git ne peut pas annuler la suppression de fichiers qui n’ont jamais été validés ni indexés.

Si vous souhaitez supprimer uniquement certains fichiers, effacez ces chemins avec votre gestionnaire de fichiers ou une commande telle que rm <file>. Pour choisir les éléments de manière interactive, utilisez git clean -i ; Git affiche un menu au lieu de supprimer tous les éléments proposés d’un coup. Un client graphique peut également afficher les fichiers non suivis, mais les libellés et les commandes de suppression varient selon l’application.

Gérer les fichiers ignorés et les autres options de git clean

Normalement, Git protège de git clean les fichiers correspondant aux règles de .gitignore. Les fichiers ignorés peuvent être des fichiers de compilation, une configuration locale ou des données dont vous avez encore besoin. Examinez donc leur portée avant de les inclure.

  • -x inclut les fichiers ignorés ainsi que les autres fichiers non suivis. Prévisualisez ce nettoyage plus large avec git clean -n -d -x, puis utilisez git clean -f -d -x uniquement si vous souhaitez supprimer les éléments proposés.
  • -X sélectionne uniquement les fichiers ignorés. Prévisualisez avec git clean -n -d -X, puis utilisez git clean -f -d -X pour supprimer uniquement les fichiers et répertoires ignorés.
  • -d inclut les répertoires non suivis ; -f autorise la suppression ; -n affiche un aperçu ; et -i ouvre la sélection interactive.

Choisissez -x pour un nettoyage étendu qui inclut les fichiers ignorés et les autres éléments non suivis. Choisissez -X si le nettoyage doit cibler uniquement les éléments ignorés. Vérifiez l’aperçu avant d’exécuter l’une ou l’autre commande, surtout si les chemins ignorés contiennent des fichiers locaux que vous souhaitez conserver.