gitignore - 忽略除指定文件类型之外的所有文件类型

Jul*_*len 7 git gitignore

我只是要提交的文件,其扩展名是.fmb,.fmx.pll,但我不能配置.gitignore文件来实现这一目标.

我试过以下内容:

!.fmb
!.fmx
!.pll
Run Code Online (Sandbox Code Playgroud)

还有:

!*.fmb
!*.fmx
!*.pll
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Har*_*Ved 6

在你的gitignore文件中试试这个 -

* !*.fmb !*.fmx !*.pll

您将首先忽略所有内容然后将文件列入白名单.

  • 如果任何“*.fmb”、“*.fmx”或“*.pll”位于子目录中,则此操作将不起作用。 (3认同)

Von*_*onC 5

处理gitignore规则时要记住的唯一规则是:

如果排除了该文件的父目录,则无法重新包含该文件( *)
( *: 除非在 git 2.?+ 中满足某些条件,请参见下文)

由于“ *”也会忽略文件夹,因此任何文件排除规则都不起作用。

尝试:

*
!*/
!*.fmb
!*.fmx
!*.pll
Run Code Online (Sandbox Code Playgroud)

这将正确取消忽略文件夹 ( !*/),并允许下一个排除规则对文件起作用。


请注意,对于 git 2.9.x/2.10(2016 年中期?),如果路径 re-included 中没有通配符,则如果排除该文件的父目录,则可能会重新包含该文件。

Nguy?n Thái Ng?c Duy ( pclouds)正在尝试添加此功能:

但是,由于重新纳入的条件之一是:

重新包含规则中的目录部分必须是文字(即没有通配符)

无论如何,这在这里都行不通。