配置 git-lfs 来跟踪超过一定大小的文件

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

我有一个安装了 git-lfs 的 git 存储库,我希望在 LFS 中拥有 所有超过一定大小的 PDF 文件,但不是 所有 PDF 文件,因为 git-lfs 支持。原因是我有许多矢量格式的微小 PDF 图形文件(可以在常规版本控制中使用)和一些大型 PDF。

可以这样配置git-lfs吗?

我使用 Atlassian 源树中的 git 并将存储库托管在 bitbucket 中,也许那些支持这个更高级的用例?

git bitbucket atlassian-sourcetree git-lfs
2个回答
4
投票

不幸的是,这在 git-lfs 上是不可能的。请参阅问题#282

然而,用户 Baccanno 提供了一个 hack,但我不会推荐它用于包含许多文件的存储库。它跟踪超过阈值的所有文件,但它可以修改为仅针对 PDF。

黑客:

(复制于此,无保证)

将其放入 git 配置的

[alias]
部分 (
project_root/.git/config
) 并将末尾的 300k 更改为您想要的大小

track-large = !"git st --porcelain --ignore-submodules | grep -v \"D \" | awk '{ l=length($0); s=substr($0,4,l-1); print s}' | sed -n 's/\\(\\(.* -> *\\)\\|\\)\\(.*\\)/\\3/p' | xargs -I{} find {} -size +300k | xargs -I{} git lfs track \"{}\""

0
投票

尝试

lfs-auto-track
,非常有帮助,如果文件大于大小,commit时,自动运行git lfs跟踪文件。

代码在这里:

https://github.com/suhaotian/lfs-auto-track

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