我可以从git-lfs中排除一些文件吗?

时间:2019-08-21 15:58:53

标签: git atlassian-sourcetree git-lfs gitattributes

我创建了一个包含一些图像文件的存储库。我有要从lfs中排除的.gitignore和.gitattributes。因此,我需要按lfs跟踪所有文件,而不是.gitignore和.gitattributes。

我正在使用Sourcetree,并在.gitattributes中进行了尝试:

.gitignore      text
.gitattributes  text
*               filter=lfs diff=lfs merge=lfs -text

但是我的所有文件都被lfs跟踪。

3 个答案:

答案 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不会跟踪它们。