Git 存储库中的属性

Git attributes in the repository

在我发现的 gitattributes 中

 *.tar filter=lfs diff=lfs merge=lfs -text

 *.tar.gz filter=lfs diff=lfs merge=lfs -text

在 tar 行上面添加这些有什么用?

如果我们从存储库中删除这个 .gitattributes 会发生什么

这些属性指定 .tar.tar.gz 文件将 运行 通过 Git LFS 作为污迹和清洁过滤器。当您使用 Git LFS 存储文件时,这些文件作为小指针文件存储在存储库中,实际文件内容由 Git LFS 处理。这意味着您的存储库不会因大型二进制文件而变得臃肿,并且只有在需要时 Git LFS 才会将二进制文件下载到您的系统中。

如果您删除此 .gitattributes 文件,那么任何已经使用 Git LFS 存储在存储库中的文件都将无法访问,因为您将只有指针文件。如果以后,您希望将这些对象作为 Git 个对象而不是 Git 个 LFS 对象存储在存储库中,您可以使用一个干净的工作树来做到这一点:

$ git rm .gitattributes
$ git add --renormalize .
$ git commit -m 'Remove use of Git LFS'

请注意,如果这些压缩包很大,那么您最终可能会在存储库中存储多个副本,这会使您的存储库膨胀。如果它们大于 100 MB,GitHub 将不再允许您推送您的存储库,并要求您在推送之前再次使用 Git LFS。