Notes :
Réponse originale 42009)
git ls-files -i
devrait fonctionner, sauf que son code source indique :
if (show_ignored && !exc_given) {
fprintf(stderr, "%s: --ignored needs some exclude pattern\n",
argv[0]);
exc_given
?
Il s'avère qu'il faut un paramètre de plus après le -i
pour énumérer quoi que ce soit :
Essayez :
git ls-files -i --exclude-from=[Path_To_Your_Global].gitignore
(mais cela ne ferait que répertorier votre en cachette (non ignoré), avec un filtre, donc ce n'est pas tout à fait ce que vous voulez)
Exemple :
$ cat .git/ignore
# ignore objects and archives, anywhere in the tree.
*.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git ls-files --ignored \
--exclude='Documentation/*.[0-9]' \
--exclude-from=.git/ignore \
--exclude-per-directory=.gitignore
En fait, dans mon fichier 'gitignore' (appelé 'exclude'), je trouve une ligne de commande qui pourrait vous aider :
F:\prog\git\test\.git\info>type exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
So....
git ls-files --others --ignored --exclude-from=.git/info/exclude
git ls-files -o -i --exclude-from=.git/info/exclude
git ls-files --others --ignored --exclude-standard
git ls-files -o -i --exclude-standard
devrait faire l'affaire.
Comme mentionné dans le Page d'accueil ls-files , --others
est la partie importante, afin de vous montrer les fichiers non mis en cache, non compromis et normalement ignorés.
--exclude_standard
n'est pas seulement un raccourci, mais un moyen d'inclure les éléments suivants tous les paramètres standard des "modèles ignorés".
exclude-standard
Ajoutez les exclusions standard de git : .git/info/exclude
, .gitignore
dans chaque répertoire, et le user's global exclusion file
.
13 votes
Ces jours-ci, vous n'utiliseriez pas `git-ls-files` mais plutôt `git ls-files`.
7 votes
Je vous supplie de vérifier la réponse de riyad comme correcte car c'est la seule qui admet qu'il n'y a pas de manière garantie de le faire en utilisant uniquement des commandes git (y compris le truc
git clean
) comme démontré ici. De plus, je recommande de ne pas inclure l'exemple "exclude-from" dans votre résumé car cela ne tient pas compte des fichiers .gitignore. Je vous demande ceci en particulier parce que cette page est la première réponse de Google.0 votes
Rapide point sur "Résumé de ce qui fonctionne" : la page de manuel "Git ls-files" explique que le "-i" signifie inclure les fichiers exclus pour la sortie ls. J'avais la même incompréhension, jusqu'à ce que je le lise ' lentement '. ;-)
0 votes
J'ai
git config --global alias.ls ls-fichiers --exclude-standard
, et cela donne la réponse à cette questiongit ls -i
.0 votes
@AlexanderBird Vous devriez mettre à jour votre réponse sur stackoverflow.com/a/12080920/812919 pour le bénéfice des futurs lecteurs si possible.
0 votes
Les réponses doivent aller dans réponses, pas dans les questions. Résumer les réponses dans la question signifie que le vote, la modération, etc. sur les réponses elles-mêmes perdent leur valeur.
7 votes
git status --ignored
est celui que je préfère : git-scm.com/docs/git-status#Documentation/…0 votes
La réponse de Qwertymk est LA réponse.
git check-ignore -v [CHEMIN]
0 votes
@AlexanderBird Votre lien github (github.com/Thr4wn/myths_about_git_show_all_ignored_files) semble être mort. J'ai recherché l'utilisateur (qui existe toujours) pour
git
etignored
, mais rien. Pas de copie sur archive.org non plus. Vous avez ajouté cela en 2012, vous souvenez-vous de ce que cela disait, à peu près?0 votes
Oh homme, je ne me souviens plus maintenant. Et je ne sais pas pourquoi ce n'est plus là non plus. Je suppose que je l'ai supprimé. Désolé.