我有几个项目有大量文件,处理后会生成其他文件。事实上,没有必要跟踪生成的文件,在某些情况下,您不希望跟踪它们,因为这会浪费空间。我理解这是.gitignore
文件的用途。问题是,我找不到在文件上使用模式匹配的好方法,因为reps还包含符合相同模式的常规用户编辑文件。例如,repo将包含许多用户编辑的.tex
个文件,但也包含由knitr form .tex
文件生成的许多.Rnw
个文件。大多数.pdf
文件是从.tex
文件自动生成的,但有些是用户创建的.pdf
数字,这些数据将包含在TeX文档中,应该被跟踪。
只有在同一目录中存在blah.tex
时,使用git的好方法才会忽略文件blah.Rnw
,并且只有bluh.pdf
才会忽略bluh.tex
1}}或bluh.Rnw
在同一目录中?
答案 0 :(得分:7)
几个简单的解决方案:
.pdf
)添加到.gitignore
*.pdf
,将git add -f
添加到版本version-this-one.pdf
,git
将跟踪那些(需要一点关心)。 *.pdf
实际上是一个glob,所以你可以排除那些hames以大写字母[A-Z]*.pdf
开头的PDF。*.pdf
用于所有PDF,!version-this-one.pdf
从排除的集合中排除一个(此处也可以使用模式).gitignore
。需要保持最新(不是太糟糕,如果出现新的,git
会认为它没有跟踪,只需添加它)。.gitignore
:git
首先在此目录的.gitignore
中搜索,如果在父目录中找不到,... ...因为您可以使用!
排除模式,在那里停止搜索。 结帐gitignore(5)
。
答案 1 :(得分:0)
.gitignore
无法做到这一点。您需要将生成的文件和用户文件拆分为单独的文件夹,并忽略整个生成的文件夹。
答案 2 :(得分:0)
查看是否可以将生成的文件放在特殊文件夹中,如 tmp 。 然后你可以在.gitignore
中添加这个文件夹TMP /