如何使git LFS不适用于子目录

时间:2017-08-06 15:31:49

标签: git git-lfs gitattributes

我的存储库使用git LFS并在其.gitattributes中包含这样的行:

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

我想直接在repo中存储一个.jar文件,不涉及LFS。理想情况下,我会使LFS不适用于包含该jar的目录下的任何内容。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

这个答案是largely sourced from this github comment

.gitattributes的语法允许您使用"减去"一个属性 - 将其从已包含的内容中删除(请参阅:https://git-scm.com/docs/gitattributes#gitattributes-Unset

这允许您取消先前包含的文件(来自github线程的示例):

*.asset filter=lfs diff=lfs merge=lfs -text
Assets/Resources/*.asset -filter=lfs -diff=lfs -merge=lfs -text

答案 1 :(得分:0)

查看此主题:Track all files in a directory to git LFS but ignore a single folder present in that directory

TL; DR,除非你移动文件夹,否则它是不可能的,或者对每个子目标使用git lfs track

答案 2 :(得分:0)

与此类似的东西对我们来说是有效的。

*.asset filter=lfs diff=lfs merge=lfs -text
TheAssetIWantToExclude.asset !filter !diff !merge -text

今天是git version 2.17.1.windows.2的。 Anthony Sottile的github链接中的进一步评论提供了此答案。

对于我们使用的现有文件

git rm --cached TheAssetIWantToExclude.asset
git add TheAssetIWantToExclude.asset
git commit 

将文件复制到仓库。