Ноты:
Также интересно (упоминается в qwertymk «s ответ ), вы можете также использовать git check-ignore -v
команду, по крайней мере на Unix ( не работает в CMD Windows , сессии)
git check-ignore *
git check-ignore -v *
Второй отображает фактическое правило, .gitignore
позволяющее игнорировать файл в вашем git-репо.
В Unix, используя « Что распространяется на все файлы в текущем каталоге рекурсивно? » И bash4 +:
git check-ignore **/*
(или find -exec
команда)
Примечание: https://stackoverflow.com/users/351947/Rafi Б. предлагает в комментариях , чтобы избежать (рискованный) globstar :
git check-ignore -v $(find . -type f -print)
Не забудьте исключить файлы из .git/
подпапки.
Оригинальный ответ 42009)
git ls-files -i
должен работать, за исключением того, что его исходный код указывает:
if (show_ignored && !exc_given) {
fprintf(stderr, "%s: --ignored needs some exclude pattern\n",
argv[0]);
exc_given
?
Оказывается, после -i
фактического списка нужен еще один параметр :
Пытаться:
git ls-files -i --exclude-from=[Path_To_Your_Global].gitignore
(но это будет только список вашего кэшированного (не игнорируемого) объекта с фильтром, так что это не совсем то, что вы хотите)
Пример:
$ 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
На самом деле, в моем файле 'gitignore' (называемом 'exclude') я нахожу командную строку, которая может вам помочь:
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]
# *~
Так....
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
должен сделать свое дело.
Как упомянуто на справочной странице ls-files , --others
это важная часть, чтобы показать вам не кешированные, не зафиксированные, обычно игнорируемые файлы.
--exclude_standard
это не просто ярлык, а способ включить все стандартные настройки «игнорируемых шаблонов».
exclude-standard
Добавить стандартные GIT исключения: .git/info/exclude
, .gitignore
в каждом каталоге, и user's global exclusion file
.