.gitignore忽略所有文件,然后递归地允许特定类型的文件



我有一个文件夹,这是一个纯粹的T4模板文件夹,但它输出代码生成的文件到其他目录。所以我要忽略除*之外的所有项。Tt文件(即*.cs, *。主人,*。resx,等等)。有一个问题。我有一个名为static的子文件夹,其中包含了永远不应该被忽略的文件。

/Test.tt
/Test.cs
/TestHtml.tt
/TestHtml.html
/Static
   /Sub/Sub.cs
   /Sub/Sub2/Sub2.cs
   /Sub3/Sub4/Sub5/Sub5.html

I 只有想忽略/Test.cs和/Test.html,但包含所有其他文件。我尝试了以下方法:

/.gitignore

# Ignore all
*
# But not these files...
!.gitignore
!*.tt

/静态/.gitignore

!*.*
#also have just tried blank

我不能让git忽略正确的事情…主要问题是我想为Static/..

设置"递归排除"。

您需要锚定您的*,否则它将继续匹配所有文件,即使在未忽略的目录中。

/*
!.gitignore
!*.tt
!/Static/

类似于

/*
!.gitignore
!*.tt
!/Static/

看看我下面的答案,当你想在其他文件夹中unignore一个子目录时,当你忽略其他所有内容时,它会变得更复杂。

我不明白为什么gitignore会忽略文件夹

最新更新