考虑到*.pdf
我.gitignore
和我都有文件,.gitattributes
git如何表现并优先考虑两者?它是否忽略pdf文件或将它们存储为LFS?
.gitignore
告诉git默认情况下它不应该关注给定路径上未跟踪的文件.
.gitattributes
告诉git修改它在给定路径上的文件上执行某些操作(如果/何时执行所述操作)的方式.为了让git尝试执行这些操作,通常至少你必须尝试开始跟踪文件 - 当然LFS使用的属性就是这种情况.
在这两种情况下,"在给定路径上"也可以表示"匹配给定模式".所以没有冲突或优先次序; 我们只需要注意每一个意味着什么.如果你*.pdf
输入.gitignore
,并且还用于.gitattributes
设置*.pdf
LFS跟踪的属性,那么:
默认情况下,git会忽略未跟踪的PDF文件.
要将新PDF文件添加到索引,您可以使用覆盖忽略规则 git add -f
一旦PDF文件存在于特定路径中,该路径就不再受忽略规则的约束
您添加的任何PDF文件都将由LFS管理.gitattributes
已经在repo中的任何PDF文件(不受忽略规则影响)应由 LFS管理,但如果它在.gitattributes
条目之前提交,则可能不是.
因此,在此设置中,LFS充当安全网,以防止PDF文件炸毁您的repo数据库,即使有人覆盖了忽略规则.也许这意味着"我们确实有一两个PDF文件跟踪;但其他PDF文件可能出现在工作树中,我们通常不希望它们."