2012-08-07 169 views
17

不知道为什么这不起作用,因为我已经完成了这个加载!也许我有一个糟糕的一天...gitignore - 只允许某些扩展名和文件

我用下面的代码忽略除了某些文件名和扩展名

* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 

出于某种原因,所有的文件,其只允许我犯.gitignore和readme.md,即使我在子文件夹中有php文件等等。它有什么不对吗?只是fyi,我使用“git add -A”来提取要提交的文件。

在此先感谢!

回答

32

的解决方案是让Git 不忽略子目录

* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 
!*/ 

否则只有*.php文件中的第一个目录级别将被接受,所有子目录都将被忽略。

+0

不知道为什么我从来没有过这样做,但现在的伟大工程。谢谢! – jleck 2012-08-07 20:04:27

+0

使用*。*。在顶部有一个*会排除子目录中的任何* .php文件。这个答案是不正确的。 – 2017-12-09 20:15:51

3

最复杂的方法来实现这一

创建.gitignore文件库root,以下行添加到.gitignore文件

*.* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 

这将包括从目录和子目录中的所有指定的文件递归。

Git版本测试2.12.2.windows.2

+1

我喜欢这个答案比接受的更好,因为它的作用超出了递归的一个级别 – Magnus 2017-05-22 16:53:38