gitignore-仅允许某些扩展名和文件

gitignore-仅允许某些扩展名和文件,git,gitignore,Git,Gitignore,不知道为什么这不起作用,因为我已经这样做了!也许我今天过得不好 我使用以下代码来忽略除某些文件名和扩展名以外的所有文件 * !.gitattributes !.gitignore !readme.md !.gitkeep !*.php 出于某种原因,它只允许我提交.gitignore和readme.md,即使我的子文件夹中有php文件等。它有什么问题吗?仅供参考,我正在使用“git add-A”获取要提交的文件 提前谢谢 解决方案是告诉Git不要忽略子目录: * !.gitattributes

不知道为什么这不起作用,因为我已经这样做了!也许我今天过得不好

我使用以下代码来忽略除某些文件名和扩展名以外的所有文件

*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
出于某种原因,它只允许我提交.gitignore和readme.md,即使我的子文件夹中有php文件等。它有什么问题吗?仅供参考,我正在使用“git add-A”获取要提交的文件


提前谢谢

解决方案是告诉Git不要忽略子目录:

*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
!*/
否则,将只接受第一个目录级别中的
*.php
文件,并忽略所有子目录

实现这一点最复杂的方法

在存储库中创建
.gitignore
文件
root
,并将以下行添加到
.gitignore
文件中

*.*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
这将递归地包括目录和子目录中的所有指定文件

测试

git版本2.12.2.windows.2


不知道为什么我以前从来没有这样做过,但现在效果很好。谢谢使用。。顶部有*将排除子目录中的所有*.php文件。这个答案不正确。我更喜欢这个答案,因为它的工作范围超出了一个递归级别。这种方法无法忽略没有递归的文件extension@ojchase确实如此,但它仍然完全解决了我的个人用例,因为如果出现不应跟踪的文件,我可以添加适当的结尾,添加
!。gitignore
在末尾