Git LFS 包括除某些文件扩展名之外的所有文件扩展名

问题描述 投票:0回答:1

我试图将所有(数据)文件包含在 LFS 中,除非它们具有

.(r|R)
.(cpp|CPP)
扩展名,但不知何故,这两个扩展名也最终出现在 LFS 中,并且我无法将它们从中删除。这是我到目前为止尝试过的:

/**/data/** filter=lfs diff=lfs merge=lfs -text
/**/data/**.[rR] -filter=lfs -diff=lfs -merge=lfs text
/**/data/**.[cC][pP][pP] -filter=lfs -diff=lfs -merge=lfs text

/**/data/** filter=lfs diff=lfs merge=lfs -text
/**/data/**.[rR] !filter !diff !merge text
/**/data/**.[cC][pP][pP] !filter !diff !merge text

之后我会:

find user-*/data -name "*.R" -print0 | xargs -0 -i echo git lfs untrack "'{}'" | bash
find user-*/data -name "*.R" -print0 | xargs -0 -i echo git rm --cached "'{}'" | bash
find user-*/data -name "*.R" -print0 | xargs -0 -i echo git add "'{}'" | bash

我做错了什么?

git check-attr -a
对于我想从 LFS 中排除的文件之一,如下所示:

# git check-attr -a 'user-004/data/get-data.R'
user-004/data/get-data.R: diff: unset
user-004/data/get-data.R: merge: unset
user-004/data/get-data.R: text: set
user-004/data/get-data.R: filter: unset

如果我理解正确的话那很好,但是该文件仍然位于 LFS 中,我不知道如何将其移至常规版本控制。

git git-lfs gitattributes
1个回答
0
投票

问题可能是 Git LFS 已跟踪的文件不会仅通过更新 .gitattributes 来更改。

  • 更新您的 .gitattributes 以从 LFS 中排除 .R 和 .cpp 文件。
  • 从索引中删除文件以停止 LFS 跟踪
git rm --cached path/to/your/files
  • 重新添加文件,以便 Git 正常跟踪它们:
git add path/to/your/files
  • 提交更改以应用更新。

这与此处应用的逻辑相同:更改 .gitattributes 后文件仍然(不在)GIT LFS 中

© www.soinside.com 2019 - 2024. All rights reserved.