.gitignore vs .gitattributes

shw*_*hwz 3 git gitignore gitattributes git-lfs

考虑到*.pdf我.gitignore和我都有文件,.gitattributesgit如何表现并优先考虑两者?它是否忽略pdf文件或将它们存储为LFS?

Mar*_*ger 9

.gitignore 告诉git默认情况下它不应该关注给定路径上未跟踪的文件.

.gitattributes告诉git修改它在给定路径上的文件上执行某些操作(如果/何时执行所述操作)的方式.为了让git尝试执行这些操作,通常至少你必须尝试开始跟踪文件 - 当然LFS使用的属性就是这种情况.

在这两种情况下,"在给定路径上"也可以表示"匹配给定模式".所以没有冲突或优先次序; 我们只需要注意每一个意味着什么.如果你*.pdf输入.gitignore,并且还用于.gitattributes设置*.pdfLFS跟踪的属性,那么:

  • 默认情况下,git会忽略未跟踪的PDF文件.

  • 要将新PDF文件添加到索引,您可以使用覆盖忽略规则 git add -f

  • 一旦PDF文件存在于特定路径中,该路径就不再受忽略规则的约束

  • 您添加的任何PDF文件都将由LFS管理.gitattributes

  • 已经在repo中的任何PDF文件(不受忽略规则影响)应由 LFS管理,但如果它在.gitattributes条目之前提交,则可能不是.

因此,在此设置中,LFS充当安全网,以防止PDF文件炸毁您的repo数据库,即使有人覆盖了忽略规则.也许这意味着"我们确实有一两个PDF文件跟踪;但其他PDF文件可能出现在工作树中,我们通常不希望它们."


phd*_*phd 4

.gitignore忽略未跟踪的文件 \xe2\x80\x94 那些未使用git add;添加的文件 .gitattributes用于跟踪文件。也就是说,可以处理一个 PDF 文件.gitattributes,而可以忽略另外两个文件(仅作为示例)。

\n