2010-03-10 108 views

回答

186

使用!否定模式:

*.dll 
!myfile.dll 
25

您也可以忽略文件夹

!src/main/resources/archetype-resources/**/*

你也可以忽略嵌套的文件夹模式

!**/src/test/resources/**/*
95

如果你要忽略整个文件夹,除了一些特定的文件,然后写:

MyFolder/* 
!MyFolder/CoolFile.txt 

不会工作:

MyFolder/ 
!MyFolder/CoolFile.txt 
+9

感谢您揭示什么是行不通的。这节省了一天。 – MigDus 2014-12-18 17:51:39

+0

@MigDus不客气。 – cubuspl42 2014-12-18 17:58:39

+12

请注意,这也可以扩展到子目录。例如,这将工作: 'MyFolder文件/子/ * MyFolder文件/子/ file.txt' 但这不会! 'MyFolder中/ * MyFolder文件/子/ file.txt' – ben 2015-01-14 15:39:50

3

你可以有几个.gitignore文件一起工作以等级的方式来实现你的目标。 在根级别,你可以有:

*.dll 

文件夹内具有myfile.dll你可以添加其他.gitignore文件像这样:

根/ lib目录/ folderwithMyFiledll

!myfile.dll 

更多信息here

可选的前缀“!”否定了这种模式;任何先前模式排除的匹配文件将再次包含在内。在第一个“!”前放置一个反斜杠(“\”)对于以文字“!”开头的模式,例如“!important!.txt”。如果在满足某些条件的情况下排除该文件的父目录,则可以重新包含文件。细节请参见注释部分。