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

时间:2011-05-03 21:42:28

标签: git recursion directory

我有一个纯粹是T4模板文件夹的文件夹,但它将代码生成的文件输出到其他目录中。所以我想忽略除* .tt文件之外的所有内容(即* .cs,*。master,* .resx等)。有一个问题。我有一个名为static的子文件夹,其中包含永远不应忽略的文件。

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

想要忽略/Test.cs和/Test.html,但包括所有其他文件。我尝试了以下内容:

/。gitignore

# Ignore all
*

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

/Static/.gitignore

!*.*
#also have just tried blank

我无法让git忽略正确的事情......主要问题是我想要静态/ 的'递归排除'。

2 个答案:

答案 0 :(得分:12)

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

e.g。

/*

!.gitignore
!*.tt
!/Static/

答案 1 :(得分:0)

类似的东西:

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

应该有用。

当你忽略其他所有内容时,如果你想要unignore某个其他文件夹中的子目录,请查看下面的答案,使其更复杂。

Can't understand how gitignore ignores the folders