笔记:
同样有趣(在qwertymk的答案中提到),您也可以git check-ignore -v
至少在Unix上使用命令(在CMD Windows会话中不起作用)
git check-ignore *
git check-ignore -v *
第二个显示的实际规则,该规则.gitignore
使git repo中的文件被忽略。
在Unix上,使用“ 什么递归扩展到当前目录中的所有文件? ”和bash4 +:
git check-ignore **/*
(或find -exec
命令)
注:https://stackoverflow.com/users/351947/Rafi B.建议在评论以避免(风险)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
。