debian12部署Gitea服务之二——部署git-lfs
Debian安装gitlfs:
先更新下软件包版本
sudo apt update
安装
sudo apt install git-lfs
验证是否安装成功
git lfs version
cd到Gitea仓库目录下
cd /mnt/HuHDD/Git/Gitea/Repo/hu/testrepo.git
执行lfs的初始化命令
git lfs install客户机Windows端在官网下载并安装Git-Lfs
再本地Git仓库工作空间下打开Git bash
执行lfs初始化命令
git lfs install
初始化之后发现工作空间如下内容发生了变化:

config文件增加了如下内容:
[lfs]
repositoryformatversion = 0
跟踪大文件:
现在,你可以选择需要用Git LFS跟踪大文件,并将它们加入到Git LFS管理中。例如,如果你要跟踪所有.mp4 文件,可以运行:
git lfs track "*.mp4"
执行了上述命令之后,仓库根目录下会出现这个文件:

打开这个文件,发现内容如下,实际就是配置了哪些文件被lfs追踪:
*.mp4 filter=lfs diff=lfs merge=lfs -text
它告诉 Git 如何处理 .mp4 文件。具体来说:
*.mp4:这表示这个规则适用于所有扩展名为.mp4的文件。filter=lfs:这表示当 Git 检出和提交这些文件时,应该使用 Git LFS 过滤器。这意味着这些文件的内容将由 Git LFS 管理,而不是由 Git 本身管理。diff=lfs和merge=lfs:这表示当 Git 对这些文件进行差异比较和合并时,应该使用 Git LFS 的差异比较和合并策略。这通常意味着 Git 将不会尝试对这些文件的内容进行差异比较和合并,因为这些文件通常是二进制文件,不能像文本文件那样进行差异比较和合并。-text:这表示 Git 不应该尝试将这些文件的内容视为文本。这可以防止 Git 在检出文件时自动转换行结束符。
另外会发现hooks钩子目录下会部署以下文件,lfs的大文件管理就是基于这些钩子实现的,有兴趣的可以深入研究一下:

测试提交并推送更改:
git add .gitattributes
git add your_large_files.mp4
git commit -m "Add large files"
git push origin master
我这里上传了一个一百多M的mp4文件(手头没有mp4文件,就拿一个压缩包改了后缀名冒名顶替了一下,手动斜眼)。提交并推送之后,我们远程到Gitea服务器上去看一下,首先看下Gitea代码仓库的大小:
![]()
才272k,显然,咱们的大文件果然不会被传入到代码仓库中,代码仓库中只会存储对于大文件夹的指针的引用。
那么咱们就去看下之前部署Gitea时所指定的git-lfs的目录下去看看。

大小127M,果然是在这里,再看一下结构:

可以看出文件是按照上面这样一种结构来存储的,使用文件的哈希值作为路径名称,将代码仓库中的引用指向这里,从而实现了大文件与代码仓库中的小文件分开存储的需求。
如果进一步验证的话,可以使用下面的命令:
使用仓库最后一次的commit对象,一直追溯到一个blob对象,指针开头为e53f,具体细节不再赘述,使用下面命令来查看该blob对象的内容:
git cat-file -p e53f
会看见这个blob的内容如下:
version https://git-lfs.github.com/spec/v1
oid sha256:74add27b1c9d3c39883fee6d130588a3f88959a578a7563b7a519c6e1a864a5d
size 132455501解读一下:
version https://git-lfs.github.com/spec/v1:这是Git LFS规范的版本信息。
oid sha256:74add27b1c9d3c39883fee6d130588a3f88959a578a7563b7a519c6e1a864a5d:这是文件的对象标识符(OID),它是文件内容的SHA-256哈希值。
size 132455501:这是文件的大小,单位是字节。
这个指针文件实际上是一个文本文件,它指向存储在服务器上的大文件。当您克隆或拉取仓库时,Git LFS会下载这些大文件,并用它们替换本地的指针文件。这样,大文件就不会存储在Git仓库中,从而保持了仓库的轻量。
注:如果不想每次进行git push时输入密钥的密码,可以git bash中执行以下命令:
eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
-
eval "$(ssh-agent -s)":这个命令会启动 SSH 代理。SSH 代理是一个在后台运行的程序,它可以保存你的 SSH 密钥,并在需要时自动提供密钥。eval命令会执行ssh-agent -s命令的输出,这样就可以设置 SSH 代理的环境变量。 -
ssh-add ~/.ssh/ssh.key:这个命令会将你的 SSH 密钥添加到 SSH 代理中。这样,当你需要使用 SSH 密钥时,SSH 代理可以自动提供密钥,你就不需要每次都手动输入密钥的密码。请注意,你需要将ssh.key替换为你的密钥的实际名称。当然,你也可以使用我上面的*号形式的模糊匹配。
下载大文件:
其他开发者在克隆仓库时,可以通过运行以下命令来下载大文件:
git lfs pull
注意事项:
- 请确保所有参与的开发者都安装了Git LFS。
- 在使用Git LFS时,确保不要将大文件直接添加到Git仓库,而是通过Git LFS进行跟踪和管理。
- 如果你的Gitea服务器是通过HTTPS进行访问的,你可能需要在服务器上配置Git LFS的HTTPS认证。
相关文章:
debian12部署Gitea服务之二——部署git-lfs
Debian安装gitlfs: 先更新下软件包版本 sudo apt update 安装 sudo apt install git-lfs 验证是否安装成功 git lfs version cd到Gitea仓库目录下 cd /mnt/HuHDD/Git/Gitea/Repo/hu/testrepo.git 执行lfs的初始化命令 git lfs install客户机Windows端在官网下载并安装Git-Lfs 再…...
leetcode 1两数之和
题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺…...
C++多线程学习[三]:成员函数作为线程入口
一、成员函数作为线程入口 #include<iostream> #include<thread> #include<string>using namespace std;class Mythread { public:string str;void Test(){cout << str << endl;} }; int main() {Mythread test;test.str "Test";thr…...
移动硬盘无法识别处理办法
今天这里做一下总结,我现在手上有一个移动硬盘,插入win10电脑是有盘号的,但是 但是点击就出问题 解决办法 安装DiskGenius 下载网址在https://www.diskgenius.cn/download.php 下载之后解压安装就行,非常简单,然后…...
【Spring Cloud】Sentinel流量限流和熔断降级的讲解
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 &am…...
前端浮点和16进制互转
一、浮点转16进制数据 //浮点数转16进制 function singleToHex(t) {if (t "") {return "";}t parseFloat(t.substr(0, 4));if (isNaN(t) true) {return "Error";}if (t 0) {return "00000000";}var s,e,m;if (t > 0) {s 0;}e…...
Java中hashCode()与equals()的相关规定
API文件有对对象的状态制定出必须遵循的规则。hashCode()和equals()是object中定义的两个方法,它们都与对象的相等性有关。 通常情况下我们需要同时使用这两个方法来判断两个对象是否相等,只有两个对象的equals()方法返回true,并且它们的has…...
转行做鸿蒙开发首先需要学习哪些?
随着越来越多的企业和团队开始布局鸿蒙生态,鸿蒙开发人才的需求也呈现出井喷式的增长。对于开发者而言,掌握鸿蒙开发技能不仅意味着能够抓住这个千载难逢的机遇,更意味着能够在未来的科技竞争中占据先机。 在这个变革的时代,鸿蒙开…...
8x8离散余弦的快速精确实现使用数据流单指令多数据扩展指令集进行转换MMX 说明书
1.https://www.cs.cmu.edu/~barbic/cs-740/ap922.pdf 2.FFmpeg: libavcodec/x86/fdct.c Source File 再学FDCT快速精确实现协议改写浮点FDCT, ffmpeg的dct使用的就是这个快速精确协议。 3.http://dspace.fcu.edu.tw/bitstream/2377/30265/1/ICM%204-1.pdf 我想如把所有余弦…...
微信公众号注册(详细图文教程)
目录 一、公众号注册准备1.1 准备事项1.2 个人注册1.3 企业注册 二、公众号注册2.1 基本信息填写2.2 选择类型2.3 信息登记2.4 公众号信息2.5 修改头像2.6 自动回复消息 三、总结 一、公众号注册准备 1.1 准备事项 公众号名称:公众号名称可以由中文、英文、数字、…...
排序算法-冒泡排序(含C语言代码示例)
一、算法介绍 冒泡排序是一种简单的排序算法,其核心思想是重复地遍历待排序列表,比较并交换相邻元素,使得较大的元素逐渐“冒泡”到列表的末尾,而较小的元素则逐渐上浮至列表的前端。该算法的名字源于类比元素的移动过程ÿ…...
易基因:表观遗传学和表观转录组修饰在植物金属和准金属暴露中的作用 | 抗逆综述
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 非必需金属(non-essential metal)和准金属(metalloid,也称类金属)对土壤的污染是全球许多地区面临的严重问题。这些非必需金属…...
使用Guava Retrying优雅的实现业务异常重试
上次写过一篇如何使用spring retry来实现业务重试的文章:https://blog.csdn.net/Kingsea442/article/details/135341747 尽管 Spring Retry 工具能够优雅地实现重试,但它仍然存在两个不太友好的设计: 重试实体被限定为 Throwable 子类&#…...
java SSM物业管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
一、源码特点 java SSM物业管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和 数据库,系统主要采用B/…...
Hive使用shell调用命令行特殊字符处理
1.场景分析 数据处理常用hive -e的方式,通过脚本操作数仓,过程中常常遇到特殊字符的处理,如单双引号、反斜杠、换行符等,现将特殊字符用法总结使用如下,可直接引用,避免自行测试的繁琐。 2.特殊字符处理 …...
服务器里面很卡,打开文件卡住了一般是什么问题,怎么解决
随着互联网业务的快速发展,各项业务都绕不开服务器。在日常使用中,服务器有着非常重要的作用。而我们日常使用中,也会遇到各种各样的问题。最近就有遇到用户联系咨询德迅云安全,询问自己服务器突然很卡,打开文件都卡住…...
linux 测试网络传输速度
在linux和macos中看不到文件复制速度,往往不清楚smb或者afp的传输速度。 dd命令可以测试磁盘io速度,当然也可以测试网络传输速度。 首先要挂载afp或者smb,此步略过。 然后准备好一定体积的测试文件(最好大点,比如1G以上),使用以下命令测试传输速度: dd if=/smb/TestI…...
GO——锁
公平锁和非公平锁 参考:https://blog.csdn.net/weixin_39309402/article/details/106466843 公平锁: 多个线程排队去获取锁优点 所有线程都能获取到资源 缺点 除第一个线程,其他队列中的线程(阻塞中)都需要唤醒&…...
分析一个项目(微信小程序篇)三
目录 接下来分析接口方面: home接口: categories接口: details接口: login接口: 分析一个项目讲究的是如何进行对项目的解析分解,进一步了解项目的整体结构,熟悉项目的结构,能够…...
element+vue 之图片放大器
1.安装插件 npm install vue-photo-zoom-pro2.main.js导入 // 放大镜 import VuePhotoZoomPro from vue-photo-zoom-pro Vue.use(VuePhotoZoomPro)3.页面使用 <vue-photo-zoom-pro:url"imgUrl":out-zoomer"true":scale"2"style"width:…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
