如何使 git LFS 不适用于子目录
How to make git LFS not apply to a subdirectory
我的存储库使用 git LFS 并在其 .git 属性中包含诸如以下行:
*.jar filter=lfs diff=lfs merge=lfs -text
有一个 .jar 文件我想直接存储在 repo 中,不涉及 LFS。理想情况下,我会让 LFS 不适用于包含该 jar 的目录下的任何内容。有办法吗?
查看此线程:Track all files in a directory to git LFS but ignore a single folder present in that directory
TL;DR,这是不可能的,除非你移动文件夹,或者对每个单独的子目录使用 git lfs track
。
这个答案是largely sourced from this github comment
.gitattributes
的语法允许您 "minus" 一个属性 -- 将其从已经包含的内容中删除(参见:https://git-scm.com/docs/gitattributes#gitattributes-Unset)
这允许您取消 lfs 之前包含的文件(来自 github 线程的示例):
*.asset filter=lfs diff=lfs merge=lfs -text
Assets/Resources/*.asset -filter=lfs -diff=lfs -merge=lfs -text
与此类似的东西对我们有用。
*.asset filter=lfs diff=lfs merge=lfs -text
TheAssetIWantToExclude.asset !filter !diff !merge -text
这是今天 git version 2.17.1.windows.2
的。 Anthony Sottile 的进一步评论 github link 提供了这个答案。
对于我们使用的现有文件
git rm --cached TheAssetIWantToExclude.asset
git add TheAssetIWantToExclude.asset
git commit
将文件复制到存储库。
我的存储库使用 git LFS 并在其 .git 属性中包含诸如以下行:
*.jar filter=lfs diff=lfs merge=lfs -text
有一个 .jar 文件我想直接存储在 repo 中,不涉及 LFS。理想情况下,我会让 LFS 不适用于包含该 jar 的目录下的任何内容。有办法吗?
查看此线程:Track all files in a directory to git LFS but ignore a single folder present in that directory
TL;DR,这是不可能的,除非你移动文件夹,或者对每个单独的子目录使用 git lfs track
。
这个答案是largely sourced from this github comment
.gitattributes
的语法允许您 "minus" 一个属性 -- 将其从已经包含的内容中删除(参见:https://git-scm.com/docs/gitattributes#gitattributes-Unset)
这允许您取消 lfs 之前包含的文件(来自 github 线程的示例):
*.asset filter=lfs diff=lfs merge=lfs -text
Assets/Resources/*.asset -filter=lfs -diff=lfs -merge=lfs -text
与此类似的东西对我们有用。
*.asset filter=lfs diff=lfs merge=lfs -text
TheAssetIWantToExclude.asset !filter !diff !merge -text
这是今天 git version 2.17.1.windows.2
的。 Anthony Sottile 的进一步评论 github link 提供了这个答案。
对于我们使用的现有文件
git rm --cached TheAssetIWantToExclude.asset
git add TheAssetIWantToExclude.asset
git commit
将文件复制到存储库。