Obtenir une liste de fichiers non versionnés dans un dossier contrôlé par Git est bien plus gênant que nécessaire. À moins que je ne craigne vraiment de lire des pages de manuel, il ne semble pas que Git offre la possibilité d’effectuer cette opération par ses propres moyens.
Il y a peut-être une manière plus élégante de faire cela, mais voici une monoplace que j’ai réunie pour cette tâche, au cas où quelqu’un d’autre aurait besoin de l’utiliser.
Edit: il se trouve que c’est un moyen standard de le faire qui fonctionne déjà bien.
git ls-files --other [--exclude-standard]
Ou…
git clean -dnx | cut -c 14-
Si vous ne voulez pas voir les fichiers ignorés,
git clean -dn | cut -c 14-
En fait, si vous utilisez git clean
avec l’option -n
ou --dry-run
, il affichera une liste des fichiers non suivis qu’il aurait supprimés si vous l’aviez exécuté avec l’option -f
ou --force
. L’ajout de l’indicateur -d
inclut les répertoires vides ou ne contenant que des fichiers non suivis.
Vous pouvez donc lancer cette commande depuis un repository git:
$ git clean -dn
Et obtenir une sortie comme ceci:
Would remove dir/untracked_file_1.txt Would remove untracked_file_2.txt
Voici un bonus: Il respecte également votre fichier .gitignore, mais si vous ajoutez l’ -X
, il ne listera que les fichiers ignorés.
diff <(echo "`git ls-tree -r master | sed 's/.*\t//g'`") <(echo "`find . -type f`") | grep '> .*' | cut -c 3-