git lfs简易使用教程
参考资料:
https://zzz.buzz/zh/2016/04/19/the-guide-to-git-lfs/
这篇随笔简单记录一下git lfs的使用教程,只记录最为常用的部分,并阐述原理,方便后面查阅。
首先说明一下git lfs的原理,看名称:git lfs。lfs即Large File Storage,git lfs扩展了git仓库的容量和功能性,使得一个git仓库不仅仅能容纳轻量的文件(代码等),还能容纳大的多媒体文件,如模型,数据等等。git clone, git pull无法handle的文件,git lfs就能轻松管理,并且在需要的时候能以几十M每秒的高速传送速率下载到本地。
一个典型的使用场景是hugging face模型库,官方给出了这样一个用例:
这个用例实际上就是lfs的最简单用法,即:如果你的git支持lfs(这个需要确认,它是一个插件)那么前两行代码应当能够高速把文件给爬下来。
那么如果我先不想下载这个仓库里面的大文件,想先暂时用一个个pointer作为lfs大文件的placeholder,应该怎么做?只需要配置GIT_LFS_SKIP_SMUDGE=1这个环境变量。
但是,如果一个仓库里面有多余的大文件,比如stable-dffusion有512和768的版本,我只想要前者,那么直接用git clone可能就太笨重,有没有更优雅的方式?这里推荐一种方式:
1 2 | git lfs install GIT_LFS_SKIP_SMUDGE=1 git clone https: //huggingface .co /prompthero/openjourney-v4 |
然后使用lfs fetch exclude命令使得git不拉取我们不想要的东西,如:
1 | git config lfs.fetchexclude "*.jpg,*.png,*.tga" |
上面这个命令其实就是存储在了.git/config文件里,然后我们运行:
git lfs fetch
git lfs checkout
就能够下载我们想要的东西,并且把想要的东西的Pointer换成真正的二进制文件了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?