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

jle*_*eck 25 git gitignore

不知道为什么这不起作用,因为我已经完成了这个加载!也许我有一个糟糕的一天......

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

*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它只允许我提交.gitignore和readme.md,即使我在子文件夹中有php文件等.它有什么问题吗?只是fyi,我正在使用"git add -A"来获取要提交的文件.

提前致谢!

eck*_*kes 45

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

*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
!*/
Run Code Online (Sandbox Code Playgroud)

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

  • 使用 *。*。顶部有 * 将排除子目录中的任何 *.php 文件。这个答案是不正确的。 (2认同)

Sma*_*jit 8

实现这一目标的最复杂方法

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

*.*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
Run Code Online (Sandbox Code Playgroud)

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

测试

git版本2.12.2.windows.2

  • 我比接受的答案更喜欢这个答案,因为它超出了一个递归级别 (3认同)
  • 这种方法无法忽略没有扩展名的文件 (2认同)