我创建了一个包含一些图像文件的存储库。我有要从lfs中排除的.gitignore和.gitattributes。因此,我需要按lfs跟踪所有文件,而不是.gitignore和.gitattributes。
我正在使用Sourcetree,并在.gitattributes中进行了尝试:
.gitignore text
.gitattributes text
* filter=lfs diff=lfs merge=lfs -text
但是我的所有文件都被lfs跟踪。
答案 0 :(得分:3)
我一直在寻找相同的东西。我正在使用git
2.26.2版,而rkedge的答案对我不起作用。我找到了this thread,最终使用了:
*.dat filter=lfs diff=lfs merge=lfs -text
excluded.dat !filter !diff !merge text
对于已经提交的文件,我必须在修改.gitattributes
后取消提交并重新提交。
答案 1 :(得分:0)
与.gitignore
文件不同,.gitattributes
文件没有排除模式,因此无法指定除少数文件以外的所有文件都应具有过滤器(例如Git LFS) )。
您需要以其他方式指定文件。如果所有文件都在目录中(例如foo
),则可以指定foo/**
。如果它们都是图像,则可以为每种图像类型指定一个规则(例如,一个规则用于*.png
,一个规则用于*.jpg
,一个规则用于*.gif
)。
作为最后的建议,如果它们都以字母或数字字符开头,则可以指定[A-Za-z0-9]*
,它也将排除所有点文件。
答案 2 :(得分:0)
.gitattributes
在优先级方面与.gitignore
类似。
* filter=lfs diff=lfs merge=lfs -text
.gitignore filter= diff= merge= text
.gitattributes filter= diff= merge= text
这将取消对这些文件的过滤器,差异,合并,而lfs不会跟踪它们。