我知道我参加晚会很晚,但这是我的答案。
正如@Joakim所说,要忽略文件,您可以使用以下内容。
# Ignore everything
*
# But not these files...
!.gitignore
!someFile.txt
但是,如果文件位于嵌套目录中,则手动编写规则会有点困难。
例如,如果我们要跳过git
项目中的所有文件,而不是a.txt
中的文件aDir/anotherDir/someOtherDir/aDir/bDir/cDir
。然后,我们.gitignore
将像这样
# Skip all files
*
# But not `aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt`
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
上面给定的.gitignore
文件将跳过除目录之外的所有目录和文件!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
您可能已经注意到,很难定义这些规则。
为了解决这个问题,我创建了一个名为git-do-not-ignore的简单控制台应用程序,它将为您生成规则。我已经将项目的详细说明托管在github中。
使用范例
java -jar git-do-not-ignore.jar "aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt"
输出量
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
还有提供一个简单的Web版本在这里
谢谢。