使用git版本1.7.1,我试图排除除.php文件之外的所有文件.
我找到的工作解决方案依赖于命令 !*/
# Ignore Everything
*
# Except these files
!.gitignore
!*/
!*.php
Run Code Online (Sandbox Code Playgroud)
如果没有!*/,它将只包含*.php根目录中的文件.!*/这样做是什么让它起作用?
这是我的思路:
ignore语句*默认会忽略所有内容,包括根目录及其所有内容.
因此,此时,将忽略根目录中的所有文件和文件夹.
该!*.php命令将重新包含*.php根路径中的所有文件,但文件夹仍然被忽略(因为它们没有结束.php) - 因此,它们还没有被gitignore否定.
因此,该!*/命令重新包含所有目录(以及后续子目录),以便可以检查它们的*.php文件.示例:folder1/匹配否定语句,!*/因为它包含/末尾,文件夹名称适合通配符运算符*