前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Git 大文件存储 lfs

Git 大文件存储 lfs

作者头像
为为为什么
发布于 2022-08-09 09:02:48
发布于 2022-08-09 09:02:48
2.1K00
代码可运行
举报
文章被收录于专栏:又见苍岚又见苍岚
运行总次数:0
代码可运行

Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。

简介

Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。

  • Git LFS可以把音乐、图片、视频等指定的任意文件存在 Git 仓库之外,而在 Git 仓库中用一个占用空间 1KB 不到的文本指针来代替文件的存在。
  • 通过把大文件存储在 Git 仓库之外,可以减小 Git 仓库本身的体积,使克隆 Git 仓库的速度加快,也使得 Git 不会因为仓库中充满大文件而损失性能。
  • 要使用 Git LFS 只需要经过一次下载安装后,指定需要由 Git LFS 管理的文件即可。
  • git每次保存diff,一些大文件发生变化时,整个仓库就会增加很大的体积,导致clone和pull的数据量大增。对于git lfs来说,在使用git lfs track命令后,git push的时候,git lfs会截取要管理的大文件,并将其传至git lfs的服务器中,从而减小仓库的体积
  • LFS 对目录是不生效的(但在git远程仓库也是提示LFS)

原理:不同于git每次保存diff,对于git来说,如果是模型文件或者一些设计大文件,改变一点,对于仓库来说会增加很大的体积。对于git lfs来说,在使用git lfs track命令后,git push的时候,git lfs会截取要管理的大文件,并将其传至git lfs的服务器中,从而减小git仓库的体积。

注意:安装 Git LFS 需要 Git 的版本不低于 1.8.5

LFS 安装

git 2.+ 版本已经自带 lfs 不需要额外安装,如果需要升级 lfs 事实上建议直接升级 git 的版本,单独升级 lfs 可能会造成版本不匹配的问题

Windows 系统
  • 通过https://git-lfs.github.com/下载 Git LFS 安装包。
  • 双击安装包,打开安装 git-lfs
  • 在命令行中执行 git lfs install(需要确认 git-lfs 命令已经被包含在环境变量中)
Linux 系统
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs

git lfs install

Mac OS 系统
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git-lfs
git lfs install

用法

  1. 查看现有的文件追踪模式:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git lfs track

  1. 添加要管理的大文件的文件类型,比如gz文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git lfs track *.gz

添加类型后,查看管理文件.gitattributes,可以发现.gitattributes中新增加一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*.gz filter=lfs diff=lfs merge=lfs -text

  1. 将管理文件.gitattributes提交至仓库. 它保存了文件的追踪记录
  2. 获取git lfs管理的所有文件列表:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git lfs ls-files

  1. 通过 git show 可以查看 lfs 文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git show HEAD:Memory/noise.jpg
version https://git-lfs.github.com/spec/v1
oid sha256:7e7434bc0bc5450d8499733547b6fe1d3be016cdbe3f8341b882d00d8627f7e4
size 1094790

  1. 添加大文件到git仓库,和其它添加方式一样
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add my.gz
git commit -m "add gz file"
git push

  1. 将代码 push 到远程仓库后,LFS 跟踪的文件会以『Git LFS』的形式显示
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git push                             
Uploading LFS objects:   0% (0/1), 164 KB | 0 B/s                              
Uploading LFS objects:   0% (0/1), 426 KB | 0 B/s                              
Uploading LFS objects:   0% (0/1), 786 KB | 213 KB/s                                                  
Uploading LFS objects: 100% (1/1), 1.1 MB | 213 KB/s                           
Uploading LFS objects: 100% (1/1), 1.1 MB | 213 KB/s, done.
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 4 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (8/8), 846 bytes | 846.00 KiB/s, done.
Total 8 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 1 local object.
To github.com:zywvvd/Python_Practise.git
   454ff61..d44e68a  master -> master

  1. clone 时 使用git clone’或 git lfs clone均可
  2. 查看Git LFS 的帮助:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git lfs help

: Git version > 1.8.5 如未安装LFS,拉取到本地LFS文件将是约1K的ASCII text文本文件(但通过du -sh查看目前的大小此目录依旧很大,那是因为.git/objects 目录存的git log文件占用)。

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git 仓库瘦身与 LFS 大文件存储
熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件,且 git push 到了远程仓库,那么我们 git clone 的时候也会很慢。
Cloud-Cloudys
2023/10/21
8610
Git 仓库瘦身与 LFS 大文件存储
使用 Git 存储大文件
当在 Git 仓库中存储大的二进制文件时(>50MB),比如 R 里面的 RData 或 RDS 文件,默认的 git 提交方式无法获取二进制文件的修改,会让仓库越来越大。在这种情况下,将仓库 push 到远程会出现警告。
王诗翔呀
2022/01/21
3K0
使用 Git 存储大文件
GitLab 之 Git LFS 大文件存储的配置
哎_小羊
2018/01/02
11.7K0
GitLab 之 Git LFS 大文件存储的配置
如何存储 Git 大文件?
作者:terryshchen,腾讯 IEG 应用开发工程师 本文主要讲解在 Git 仓库中如何管理大的二进制文件,详细介绍了什么是 Git LFS,Git LFS 是如何工作的,以及如何使用 Git LFS。 本文翻译自 Atlassian 官方介绍 Git LFS 的文章,Atlassian 是 Git LFS 的主要开发者之一,这篇介绍 Git LFS 的文章比较权威,讲的也很详细。原文地址: https://www.atlassian.com/git/tutorials/git-lfs 本
腾讯技术工程官方号
2020/06/09
3.6K0
轻松上传超过100M的文件至GitHub
GitHub是我们常用的代码托管平台,但GitHub有一个限制,不能上传超过100M的文件。
生信小王子
2020/08/10
14K0
Git LFS 好用的大文件储存工具?
最新使用通义千问-14B-对话-Demo 模型,由于代码比较大,所以需要使用git lfs克隆项目空间
Tinywan
2023/09/28
5630
Git LFS 好用的大文件储存工具?
Cloud Studio 三分钟上手 Git LFS
Git 主要用于代码版本控制,可以快速查看不同版本的代码内容的变更信息。但在实际使用过程中,代码仓库不仅会有纯文本的代码,可能会有 PSD 设计图、docx 文件、zip压缩包等二进制文件。
Cloud Studio
2022/09/01
1.5K0
Cloud Studio 三分钟上手 Git LFS
深入了解Git LFS:高效管理大型文件的利器
今天在使用CodeUp上传代码时,我为项目添加了一个大小超过300MB的文件。在进行push操作时,系统提示我“推送失败,以下文件大小超过单文件200MB的系统限额,大文件请使用Git-LFS管理”。于是我开始了解Git LFS。对于需要处理大型二进制文件的项目而言,Git的性能可能成为一个瓶颈。为了解决这个问题,Git引入了Git LFS(Large File Storage)——专门用于管理大型文件的扩展。在本文中,我们将深入探讨Git LFS的原理、使用方法以及它为项目带来的优势。
修己xj
2023/12/13
1.2K0
深入了解Git LFS:高效管理大型文件的利器
化繁为简的企业级 Git 管理实战(五):二进制大文件的版本控制
二进制大文件的版本控制是 Git 的一个弱项,也是很多团队难免会遇到的一个让人头痛的问题。本文将介绍我们使用 Git 进行二进制文件的版本控制的多种方案,以及相关的踩坑之旅。 毫无疑问,Git 非常适合用于代码文件的版本控制。对于纯代码仓库,由于每次实际提交都是增量内容,即使仓库经历了几十次提交,整个仓库的大小往往都不会大幅增加。 而对于存在二进制文件的仓库,情况就变了:Git 并不能很好地支持二进制文件的增量提交,每次更新一个二进制文件,就相当于把这份文件的完整内容再往仓库里扔。久而久之,这个仓库就会变得
HaHack
2018/07/03
1.9K0
Git推送大文件失败?你晓得如何解决嘛?
我相信这不是我一个人的经历:傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。
小闫同学啊
2019/09/24
2.4K0
Git LFS: 简单高效的大文件版本控制
可以看到,git限制上传大小是100MB,超过的话就会报错,找了一圈,学到了一个新东西git LFS,这里记录一下。
用户3578099
2024/01/10
1.2K0
Git LFS: 简单高效的大文件版本控制
Github又悄悄升级了,这次的变化是大文件的存储方式
github是大家常用的代码管理工具,也被戏称为世界上最大的程序员交友网站,它的每次升级都会影响很多用户。在我的个人github网站上,之前在做JAVA NIO demo的时候上传了一个自制的大文件,最近对这个项目进行了一些修改,但是却上传不上github网站了,查看报错的原因,就是说项目中有一个大文件无法上传,现在github提供了一个叫做Git Large File Storage (LFS)的工具来替换github中的大文件。
程序那些事
2022/03/18
9800
Nexus OSS 3 搭建并配置使用 Docker & Git LFS 仓库
哎_小羊
2018/01/02
4K0
Nexus OSS 3 搭建并配置使用 Docker & Git LFS 仓库
Git目录为什么这么大
本文围绕git的目录过大,从git进行版本控制底层存储出发,简要分析Git目录过大的原因,以及如何处理
仙人技术
2021/08/31
1.3K0
Git目录为什么这么大
使用 git push 上传超过100MB文件报错 remote: error: this exceeds GitHub‘s file size limit of 100.00 MB
使用 git push 将一个 173.86 MB 的文件推送到 GitHub 时出现如下报错
Gnep@97
2023/08/10
3.5K0
使用 git push 上传超过100MB文件报错 remote: error: this exceeds GitHub‘s file size limit of 100.00 MB
Git LFS(Large File Storage)
Git Large File Storage (LFS),是GitHub推出的基于Git的扩展,专门用来存储大文件。
donghui
2019/04/19
1.3K0
Git LFS(Large File Storage)
【Git】Git 完全指南:从入门到精通
Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障项目的稳定性与可持续发展。本篇文章从基础命令讲起,逐步深入,帮助你全面了解并掌握 Git,最终达到精通。
LuckiBit
2024/12/11
3.6K0
【Git】Git 完全指南:从入门到精通
使用git lfs追踪仓库中的二进制文件
使用博客或者给仓库里的代码做注释时,经常会加上图片。 但是单纯地使用git提交会造成每提交一次体积为M的二进制文件, 仓库的体积就会增加M。
羽翰尘
2019/11/20
2.3K0
Git 必知必会《上》
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Wu_Candy
2022/07/04
4120
Git
任意路径或者直接在桌面,右键,选择Git Bash Here,即进入Git操作面板
十玖八柒
2022/08/01
9920
Git
相关推荐
Git 仓库瘦身与 LFS 大文件存储
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文