当前位置: 首页 > news >正文

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,超过的话就会报错&#xff…...

如何培养用户思维

产品开发是根据用户要求建造出系统的过程,产品开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程,一般通过某种程序设计语言来实现。然而用户思维能够帮助企业更好地理解市场需求,进行产品的开发和完善,用户是企业产…...

由浅入深理解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对比分析

当处理多线程并发时&#xff0c;正确使用锁是确保线程安全的关键。 1. std::mutex&#xff08;互斥锁&#xff09;&#xff1a; std::mutex 是C标准库提供的最基本的锁。它的基本使用如下&#xff1a; #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——视图

目录 一.视图介绍 二.基本使用 三.视图规则和限制 一.视图介绍 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表&#xff0c;基表的数据变化也会影响到视图。 二.基本使用 创…...

【响应式编程-03】Lambda表达式底层实现原理

一、简要描述 Lambda的底层实现原理Lambda表达式编译和运行过程 二、Lambda的底层实现原理 Lambda表达式的本质 函数式接口的匿名子类的匿名对象 反编译&#xff1a;cfr-0.145.jar 反编译&#xff1a;LambdaMetafactory.metafactory() 跟踪调试&#xff0c;转储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&#xff08;Structured Query Language&#xff09;中&#xff0c;UPDATE语句用于修改数据库表中的数据。通过UPDATE语句&#xff0c;我们可以更新表中的特定记录或多条记录&#xff0c;从而实现数据的修改和更新。本文将详细介绍SQL UPDATE语句的语法、用法以及一…...

新闻稿发布:媒体重要还是价格重要

在当今信息爆炸的数字时代&#xff0c;企业推广与品牌塑造不可或缺的一环就是新闻稿发布。新闻稿是一种通过媒体渠道传递企业信息、宣传品牌、事件或产品新闻的文本形式。发布新闻稿的过程旨在将企业的声音传递给更广泛的受众&#xff0c;借助媒体平台实现品牌故事的广泛传播。…...

prometheus grafana mysql监控配置使用

文章目录 前传bitnami/mysqld-exporter:0.15.1镜像出现了问题.my.cnf可以用这个"prom/mysqld-exporter:v0.15.0"镜像重要的事情mysql监控效果外传 前传 prometheus grafana的安装使用&#xff1a;https://nanxiang.blog.csdn.net/article/details/135384541 本文说…...

鸿蒙HarmonyOS-带笔锋手写板(三)

笔者用ArkTS 写了一个简单的带笔锋的手写板应用&#xff0c;并且可以将手写内容保存为图片。 一、效果图 手写效果如下&#xff08;在鸿蒙手机模拟器上运行&#xff0c;手写时反应可能会有点慢&#xff09; 二、实现方法 参考文章&#xff1a; 支持笔锋效果的手写签字控件_a…...

React 实现 Step组件

简介 本文将会实现步骤条组件功能。步骤条在以下几个方面改进。 1、将url与Step组件绑定&#xff0c;做到浏览器刷新&#xff0c;不会重定向到Step 1 2、通过LocalStorage 存储之前的Step&#xff0c;做到不丢失数据。 实现 Step.jsx (组件) import {useEffect, useState} fro…...

Windows平台PDF处理终极解决方案:Poppler预编译包深度解析

Windows平台PDF处理终极解决方案&#xff1a;Poppler预编译包深度解析 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 在Windows环境下处理PDF文件…...

GitHub加速终极指南:3步让你的下载速度提升10倍!

GitHub加速终极指南&#xff1a;3步让你的下载速度提升10倍&#xff01; 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在为Git…...

Java SE 与 Spring Boot 在电商场景中的应用

面试&#xff1a;Java SE 与 Spring Boot 在电商场景中的应用 今天&#xff0c;我们将围绕一位求职者在一家电商公司的面试场景&#xff0c;与面试官进行一场激烈的技术问答。第一轮提问 面试官&#xff1a; 首先&#xff0c;请你简单介绍一下 JVM 的工作原理。 燕双非&#xf…...

“找档难、找档慢”困扰工作?档案宝智能检索功能,让档案查询秒响应

目录 档案之痛&#xff1a;效率与风险并存 破局之道&#xff1a;智能检索成关键 写在最后 在日常办公中&#xff0c;你是否遇到过这样的场景&#xff1a;需要调取一份重要合同档案&#xff0c;翻遍整个文件柜却找不到&#xff1b;领导紧急要一份历史数据&#xff0c;手动搜索了…...

从惊叹到依赖:软件定义时代的技术信任与实用指南

1. 从“惊叹”到“依赖”&#xff1a;我们与技术关系的深度剖析“这玩意儿以前没有的时候&#xff0c;我们是怎么活过来的&#xff1f;” 这念头时不时就会冒出来。我能看懂纸质地图&#xff0c;甚至开车时有时觉得它比谷歌地图更靠谱&#xff1b;我也记得在厚厚的黄页里翻找电…...

冲突矿产法规合规:供应链尽责管理与ESG风险应对实战指南

1. 冲突矿产法规合规&#xff1a;一场被低估的供应链风暴如果你是一家电子、汽车或工业设备制造公司的供应链、法务或合规负责人&#xff0c;现在请立刻停下手中的工作&#xff0c;问自己一个问题&#xff1a;我们公司使用的锡、钽、钨、金&#xff08;3TG&#xff09;这四种金…...

企业内网应用如何安全合规地集成外部大模型API服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业内网应用如何安全合规地集成外部大模型API服务 在构建内部AI工具时&#xff0c;企业开发团队面临一个核心挑战&#xff1a;如何…...

打造高效命令行天气查询工具:基于KMI/IRM的比利时天气CLI实践

1. 项目概述&#xff1a;一个为终端而生的比利时天气查询工具 如果你和我一样&#xff0c;是个重度命令行用户&#xff0c;同时又对窗外天气是晴是雨有点在意&#xff0c;那你肯定也烦透了为了看个天气预报还得打开浏览器、点开某个天气网站或者解锁手机。这种打断工作流的感觉…...

使用Taotoken后如何清晰观测API用量与成本变化

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken后如何清晰观测API用量与成本变化 对于团队管理者或开发者而言&#xff0c;将大模型能力集成到产品中后&#xff0c;资…...

用OpenMV4 H7 PLUS做个智能分拣小车:颜色识别实战项目从硬件选型到代码集成

智能分拣小车实战&#xff1a;OpenMV4 H7 PLUS颜色识别与嵌入式系统集成 在创客竞赛和毕业设计中&#xff0c;智能分拣系统一直是热门选题。传统方案往往面临识别精度不足、响应延迟高或硬件兼容性差等问题。OpenMV4 H7 PLUS凭借其强大的图像处理能力和丰富的硬件接口&#xff…...