我有一个名为/ static的目录.它中有很多子目录.我需要忽略/ static /目录的所有子目录中的所有文件,除了.htaccess,null.jpg和index.php文件.请告诉我这个操作的正确语法是什么?
/static/**
!/static/**/.htaccess
Run Code Online (Sandbox Code Playgroud)
和
/static/*
!/static/*/.htaccess
Run Code Online (Sandbox Code Playgroud)
不工作.
正如我在" 包含gitignore中的特定文件扩展名 "中所提到的,要记住的主要规则是:
如果排除该文件的父目录,则无法重新包含文件.(
*)
(*:除非在git 2.?+中满足某些条件,见下文)
这就是为什么任何忽略文件夹(如*或*/)的规则都会使得排除任何子文件变得不可能.
这就是为什么正确的方法是排除一切,除了:
如果您不首先排除文件夹,您的文件仍会被忽略(因为我上面提到的规则)
所以加入你的.gitignore:
/static/**/**
!/static/**/
!.gitignore
!.htaccess
Run Code Online (Sandbox Code Playgroud)
这是使用Git 2.4.1测试的,甚至可以在Windows上运行.
请注意,使用git 2.9.x/2.10(2016年中期?),如果重新包含的路径中没有通配符,则可以重新包含该文件(如果排除该文件的父目录).
NguyễnTháiNgọcDuy(pclouds)正在尝试添加此功能:
但是,由于其中一个条件是"重新包含规则中的目录部分必须是文字(即没有通配符)",因此无论如何都不能在此处使用该功能.
| 归档时间: |
|
| 查看次数: |
3680 次 |
| 最近记录: |