Git LFS: 简单高效的大文件版本控制
Git Large File Storage
问题
在使用git上传大文件时候,git push时候会报错:
remote: error: File xxx.tar.gz is 135.17 MB; this exceeds GitHub's file size limit of 100 MB
可以看到,git限制上传大小是100MB,超过的话就会报错,找了一圈,学到了一个新东西git LFS,这里记录一下。
用于对大文件进行版本控制的开源 Git 扩展
Git 大文件存储 (LFS) 使用 Git 内部的文本指针替换音频样本、视频、数据集和图形等大文件,同时将文件内容存储在 GitHub.com 或 GitHub Enterprise 等远程服务器上。
入门指南
下载并安装Git命令行扩展安装。
安装并初始化,一旦下载并安装完成,请通过运行以下命令为您的用户帐户设置Git LFS:
git lfs install
只需要在每个用户帐户中运行一次此命令。
跟踪大型文件。在每个要使用Git LFS的Git存储库中,选择您想要Git LFS管理的文件类型(或直接编辑.gitattributes
文件)。可以随时配置额外的文件扩展名。
git lfs track "*.psd"
git lfs track "*.pdf"
现在确保.gitattributes
文件已被跟踪:
git add .gitattributes
请注意,仅定义Git LFS应跟踪的文件类型并不能自行将任何现有文件转换为Git LFS,比如其他分支上的文件或您之前的提交历史中的文件。为此,请使用git lfs migrate
命令,该命令具有一系列选项,旨在适应各种潜在用例。
提交和推送。只需像往常一样提交和推送到GitHub;例如,如果当前的分支名为main
:
git add file.psd
git commit -m "Add design file"
git push origin main
下载和还原:当其他人克隆或拉取您的仓库时,需要运行以下命令来下载和还原 LFS 文件:
git lfs fetch
git lfs checkout
git lfs fetch
:该命令用于从远程 LFS 服务器下载 LFS 文件。当其他人从远程仓库中拉取或克隆包含 LFS 文件的仓库时,他们需要运行git lfs fetch
命令来获取这些文件的实际内容。这个命令会从 LFS 服务器上下载并将 LFS 文件还原到本地仓库中。git lfs checkout
:该命令用于还原本地仓库中的 LFS 文件。在执行git lfs fetch
命令后,LFS 文件的实际内容会被下载到本地仓库的.git/lfs
目录中。然而,这些文件只是指针文件,并没有在工作目录中显示实际内容。通过运行git lfs checkout
命令,LFS 文件的实际内容会被还原到工作目录中,使得能够访问和使用这些文件。
如果不想将某某文件进行Git LFS处理,比如说readme.md
, 可以在.gitattributes
文件中,添加一行规则来指定不将readme.md
文件包含在Git LFS中,这将告诉Git不要将readme.md
文件进行Git LFS处理。
readme.md !filter
保存并关闭.gitattributes
文件,并将.gitattributes
文件提交到Git版本控制中。如果之前已经将readme.md
文件添加到Git LFS中,可以使用以下命令将其从Git LFS中移除:
git lfs untrack readme.md
注意,这些操作只会影响后续的Git操作,不会改变之前已经提交到Git LFS的文件。
其他
查看维基、讨论论坛和文档,以获取有关可能遇到的任何问题的帮助!
Git LFS是一个开源项目 要开始讨论、提交问题或为项目做贡献,请访问存储库或阅读贡献指南。
如果对将Git LFS集成到另一个工具或产品中感兴趣,可能想阅读API规范或查看参考服务器实现。
特性
大文件版本控制
使用Git对大文件进行版本控制,即使这些文件的大小达到几GB。
更多的存储空间
在Git存储库中托管更多内容。通过外部文件存储,轻松保持存储库的可管理大小。
更快的克隆和提取
下载更少的数据。这意味着在处理大文件的存储库中进行更快的克隆和提取。
相同的Git工作流
像往常一样在Git上工作,无需额外的命令、辅助存储系统或工具集。
相同的访问控制和权限
在与GitHub等远程主机一起工作时,对大文件保持与Git存储库的其余部分相同的访问控制和权限。
参考
- https://git-lfs.com/
- API规范
- 文档
- 论坛
- https://blog.csdn.net/xixihahalelehehe/article/details/123137847
相关文章:
Git LFS: 简单高效的大文件版本控制
Git Large File Storage 问题 在使用git上传大文件时候,git push时候会报错: remote: error: File xxx.tar.gz is 135.17 MB; this exceeds GitHubs file size limit of 100 MB可以看到,git限制上传大小是100MB,超过的话就会报错ÿ…...
如何培养用户思维
产品开发是根据用户要求建造出系统的过程,产品开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程,一般通过某种程序设计语言来实现。然而用户思维能够帮助企业更好地理解市场需求,进行产品的开发和完善,用户是企业产…...
由浅入深理解C#中的事件
目录 本文较长,给大家提供了目录,可以直接看自己感兴趣的部分。 前言有关事件的概念示例 简单示例 标准 .NET 事件模式 使用泛型版本的标准 .NET 事件模式 补充总结 参考前言 前面介绍了C#中的委托,事件的很多部分都与委托…...
Nginx(十六) 配置文件详解 - server stream服务流
本篇文章主要讲 ngx_stream_core_module 模块下各指令的使用方法,Nginx默认未配置该模块,需要用“--with-stream”配置参数重新编译Nginx。 worker_processes auto;error_log /var/log/nginx/error.log info;events {worker_connections 1024; }stream…...
Css中默认与继承
initial默认样式: initial 用于设置 Css 属性为默认值 h1 {color: initial; }如display或position不能被设置为initial,因为有默认属性。例如:display:inline inherit继承样式: inherit 用于设置 Css 属性应从父元素继承 di…...
gitee上的vue大屏项目
在 Gitee 上,有几个值得注意的 Vue 大屏项目:vue-big-screen-plugin (Gitee): 这是一个基于 Vue3、Typescript、DataV 和 ECharts5 框架的可视化大屏项目。它使用 .vue 和 .tsx 文件构建界面,并采用新版动态屏幕适配方案。这个项目支持数据的动态刷新渲染,内部的 DataV 和 …...
【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
社保养老金发放计算方法
退休后养老金计算公式很复杂,自己自行百度查一下,这里说一下男性,女工人,女干部之间计算差别。 退休后,能到手的养老金多少,取决于你的个人账户里的钱,个人账户里的钱越多,到手养老…...
概率论基础复习题
一、填空题 二、选择题 答案:B 答案:C 答案:C 答案:D。统计量不含任何未知参数。 答案:A 答案:C 样本均值是总体均值的无偏估计;样本方差是总体方差的无偏估计。 答案:B。统计值是一…...
c++,mutex,unique_lock,recursive_mutex,shared_mutex对比分析
当处理多线程并发时,正确使用锁是确保线程安全的关键。 1. std::mutex(互斥锁): std::mutex 是C标准库提供的最基本的锁。它的基本使用如下: #include <iostream> #include <mutex> #include <threa…...
MySQL与Oracle数据库在网络安全等级方面用到的命令
MySQL数据库命令集 查看数据库版本 SELECT VERSION(); 空口令查询 SELECT user,host,account_locked FROM mysql.user WHERE user ; SELECT * FROM mysql.user; 查询 用户的密码加密情况 SELECT HOST,USER,PLUGIN FROM mysql.user; 查询是否有空用户 SELECT host,user,plug…...
MySQL——视图
目录 一.视图介绍 二.基本使用 三.视图规则和限制 一.视图介绍 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 二.基本使用 创…...
【响应式编程-03】Lambda表达式底层实现原理
一、简要描述 Lambda的底层实现原理Lambda表达式编译和运行过程 二、Lambda的底层实现原理 Lambda表达式的本质 函数式接口的匿名子类的匿名对象 反编译:cfr-0.145.jar 反编译:LambdaMetafactory.metafactory() 跟踪调试,转储Lambda类&#x…...
深入理解可变参数
1.C语言方式 目录 1.C语言方式 1.1.宏介绍 1.2.原理详解 1.3.宏的可变参数 1.4.案例分析 1.5.其他实例 2.C之std::initializer_list 2.1.简介 2.2.原理详解 2.3.案例分析 3.C之可变参数模版 3.1.简介 3.2.可变参数个数 3.3.递归包展开 3.4.逗号表达式展开 3.5…...
Centos7.9和Debian12部署Minio详细流程
一、安装minio Centos wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230227181045.0.0.x86_64.rpm -O minio.rpm sudo dnf install minio.rpmDebian wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20230227181045.0…...
软件测试|教你如何使用UPDATE修改数据
简介 在SQL(Structured Query Language)中,UPDATE语句用于修改数据库表中的数据。通过UPDATE语句,我们可以更新表中的特定记录或多条记录,从而实现数据的修改和更新。本文将详细介绍SQL UPDATE语句的语法、用法以及一…...
新闻稿发布:媒体重要还是价格重要
在当今信息爆炸的数字时代,企业推广与品牌塑造不可或缺的一环就是新闻稿发布。新闻稿是一种通过媒体渠道传递企业信息、宣传品牌、事件或产品新闻的文本形式。发布新闻稿的过程旨在将企业的声音传递给更广泛的受众,借助媒体平台实现品牌故事的广泛传播。…...
prometheus grafana mysql监控配置使用
文章目录 前传bitnami/mysqld-exporter:0.15.1镜像出现了问题.my.cnf可以用这个"prom/mysqld-exporter:v0.15.0"镜像重要的事情mysql监控效果外传 前传 prometheus grafana的安装使用:https://nanxiang.blog.csdn.net/article/details/135384541 本文说…...
鸿蒙HarmonyOS-带笔锋手写板(三)
笔者用ArkTS 写了一个简单的带笔锋的手写板应用,并且可以将手写内容保存为图片。 一、效果图 手写效果如下(在鸿蒙手机模拟器上运行,手写时反应可能会有点慢) 二、实现方法 参考文章: 支持笔锋效果的手写签字控件_a…...
React 实现 Step组件
简介 本文将会实现步骤条组件功能。步骤条在以下几个方面改进。 1、将url与Step组件绑定,做到浏览器刷新,不会重定向到Step 1 2、通过LocalStorage 存储之前的Step,做到不丢失数据。 实现 Step.jsx (组件) import {useEffect, useState} fro…...
【OJ】单链表刷题
力扣刷题 1. 反转链表(206)1.1 题目描述1.2 题目分析1.2.1 头插法1.2.2 箭头反转 1.3 题目代码1.3.1 头插入1.3.2 箭头反转 2.合并两个有序链表(21)2.1 题目描述2.2 题目分析2.3 题目代码 1. 反转链表(206)…...
【UML建模】部署图(Deployment Diagram)
1.概述 部署图是一种结构图,用于描述软件系统在不同计算机硬件或设备上的部署和配置情况,以图形化的方式展示系统中组件、节点和连接之间的物理部署关系。 通过部署图,可以清晰地了解系统的物理结构和部署方式,包括系统组件和节…...
三、计算机理论-关系数据库-数据模型与数据视图;关系代数、关系演算及关系模型
数据模型 具体事物-抽象化-->概念模型-数据化-->数据模型 概念模型也称信息模型,在数据库设计阶段,由设计者按照用户的观点对数据和信息建模,实现对现实世界的概念抽象; 数据模型主要包括网状模型、层次模型、关系模型、面向…...
解读 $mash 通证 “Fair Launch” 规则(Staking 玩法解读篇)
Solmash 是 Solana 生态中由社区主导的铭文资产 LaunchPad 平台,该平台旨在为 Solana 原生铭文项目,以及通过其合作伙伴 SoBit 跨链桥桥接到 Solana 的 Bitcoin 生态铭文项目提供更广泛的启动机会。...
【C语言】关于C11的一些新特性
相比于VC 6.0使用的ANSI C标准,VS2022使用的C11标准与上一代有很多不同,相比之前的 C 标准(如 C89/C90 和 C99),引入了一些新的功能、特性和改进。以下是 C11 标准相对于之前版本的一些主要变化和新增内容:…...
牛的速记(c++题解)
题目描述 奶牛们误解了速记的含义。他们是这样理解的: 给出一个少于255个字母的小写字母串。 找到一个出现次数最多的字母,将该字母从字母串中统统删去,如果出现次数最多的字母不止一个,就删去在字母表中靠前的一个,即…...
使用ffmpeg+flv.js + websokect播放rtsp格式视频流
对于rtsp的视频流网上有很多种的解决方案,但是大的趋势还是利用ffmpeg的工具进行rtsp的视频解析进行一个推流,我最终选择bilibili开源的flv.js,代码十分的简单全部都在底层封装好了。实现的方式也比较容易理解,ffmpeg进行rtsp的视…...
OAI openair3代码结构整理
openair3代码框架结构 OAI(OpenAirInterface)是一个开源的5G网络软件平台,用于研究和开发5G网络技术。OpenAir3是OAI项目中的一个子项目,专注于5G核心网络的功能实现。 一、OpenAir3的代码主要包括以下几个部分: NAS…...
Kubernets(K8S)启动和运行 01-01 Kubernetes简介
Kubernets(K8S)启动和运行 01-01 Kubernetes简介 Kubernetes is an open source orchestrator for deploying containerized applications. It was originally developed by Google, inspired by a decade of experience deploying scalable, reliable systems in containers …...
PHP特性知识点扫盲 - 下篇
概述 在实际的生产环境中遇到了实际需要解决的问题,需要把服务部署的方式梳理出来,在同一个服务器中部署多个PHP环境,架构图如下: 架构方案 在工作实践中遇到的很多问题的普遍性都是相通的,公司运行的可新项目都是版…...
义乌免费做网站/国内新闻大事20条
一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQLServer等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越…...
深圳定制建设网站/推广软件赚钱的平台
前言过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个python操作的细节,包含all、any、for in等操作,以及介绍我解决问题的思路。一、开篇先从我看到的一个简单的语句开始。刚看到这个语句的时候我整个人完全懵住了…...
wordpress更换文章背景色/大型网站建设
本文纯属标题党。虽然本文是非常非常非常简单的,但在实际中由于不同的人的把握方式不同,产生的效果也不同,甚至可以收获极具戏剧性的效果。如果说 Excel 和 PPT 是职场必备工具,那么,PowerBI就是掌握了 Excel 和 PPT 的…...
做家纺的网站/2022年国际十大新闻
2019独角兽企业重金招聘Python工程师标准>>> 如果在移动端的话,由于移动端操作相对比较单一,因此loading形式也比较简单。通常做法是在请求发出时页面正中位置弹出一个loading的 toast,请求结束隐藏 toast 。 这种做法大家接受度比…...
做民宿最大的网站/seo优化教学视频
1. 最简单的方法是用base64: import base64 s1 base64.encodestring(hello world) s2 base64.decodestring(s1) print s1,s2 # aGVsbG8gd29ybGQ\n # hello world Note: 这是最简单的方法了,但是不够保险,因为如果别人拿到你的密文,也可以自…...
张槎网站建设/百度关键词排名优化
作者:jason cnblogs.com/baizhanshi/p/7211802.html 之前栈长分享了重入锁的概念:《到底什么是重入锁,拜托,一次搞清楚!》,今天现来深入了解下 Synchronized 与 ReentrantLock 的区别! 可重入性…...