Appunti:
Interessante anche (di cui qwertymk 's risposta ), è anche possibile utilizzare il git check-ignore -v
comando, almeno su Unix ( non funziona in un CMD di Windows sessione)
git check-ignore *
git check-ignore -v *
Il secondo mostra la regola effettiva .gitignore
che rende un file da ignorare nel tuo repository git.
Su Unix, usando " Cosa si espande ricorsivamente a tutti i file nella directory corrente? " E un bash4 +:
git check-ignore **/*
(o un find -exec
comando)
Nota: https://stackoverflow.com/users/351947/Rafi B. suggerisce nei commenti di evitare la (rischiosa) globstar :
git check-ignore -v $(find . -type f -print)
Assicurati di escludere i file dalla .git/
sottocartella però.
Risposta originale 42009)
git ls-files -i
dovrebbe funzionare, tranne che il codice sorgente indica:
if (show_ignored && !exc_given) {
fprintf(stderr, "%s: --ignored needs some exclude pattern\n",
argv[0]);
exc_given
?
Si scopre che è necessario un altro parametro dopo il -i
per elencare effettivamente qualsiasi cosa:
Provare:
git ls-files -i --exclude-from=[Path_To_Your_Global].gitignore
(ma questo elencherebbe solo il tuo oggetto memorizzato nella cache (non ignorato), con un filtro, quindi non è esattamente quello che vuoi)
Esempio:
$ 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
In realtà, nel mio file 'gitignore' (chiamato 'exclude'), trovo una riga di comando che potrebbe aiutarti:
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]
# *~
Così....
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
dovrebbe fare il trucco.
Come menzionato nella pagina man ls-files , --others
è la parte importante, al fine di mostrarti i file non memorizzati nella cache, non impegnati, normalmente ignorati.
--exclude_standard
non è solo una scorciatoia, ma un modo per includere tutte le impostazioni standard "schemi ignorati".
exclude-standard
Aggiungere le esclusioni git standard di: .git/info/exclude
, .gitignore
in ogni directory, e il user's global exclusion file
.