使用Git LFS上传大文件到GitHub教程,以及可能会遇到的坑(使用了Git LFS却依然传不上超过100M的文件;framework库如何添加等)

2023-10-29

什么是Git LFS?

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

简单的说,就是如果你想传超过100M的二进制文件到GitHub,你就要用Git LFS!

安装Git LFS

首先确保电脑已经安装了Git并且版本不低于1.8.5

下面为不同平台的安装方法:

Linux

  1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
    `
  2. sudo apt-get install git-lfs
  3. git lfs install

Mac

 (

  1. 安装HomeBrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. brew install git-lfs
  3. git lfs install

本人为mac版本,在安装时候发生了权限错误问题,提示“

fatal: cannot copy '/usr/local/git/share/git-core/templates/hooks/pre-receive.sample' to '/usr/local/Homebrew/.git/hooks/pre-receive.sample': Permission denied

 ”解决办法:https://stackoverflow.com/questions/40592463/homebrew-install-fails-while-copying-files

 

Windows

  1. 下载安装 windows installer
  2. 运行 windows installer
  3. 在命令行执行 git lfs install

可以通过命令“git lfs version”来查看git lfs是否安装完成

如何使用Git LFS

下面开始添加大文件到git lfs

所有的步骤都完成了

可能会遇到的问题

1,(使用了Git LFS却依然传不上超过100M的文件)

进行到上面第五步git push之后依然提示,文件超过100M,上传失败之类的错误信息,如下

 

  1. 如果有大文件"xxx/aaa",xxx为你启动终端的相对路径,aaa是超过100M的大文件
  2. 输入命令git lfs track "xxx/aaa"---添加aaa文件,git lfs会在工程目录下生成一个gitattributes
  3. 输入命令git add .
  4. 输入命令git commit -m "add big file aaa to the github"
  5. 输入命令git push

wodeMacBook-Pro:xxx$ git push origin master

Uploading LFS objects: 100% (1/1), 137 MB | 0 B/s, done                         

Counting objects: 111, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (110/110), done.

Writing objects: 100% (111/111), 56.71 MiB | 174.00 KiB/s, done.

Total 111 (delta 21), reused 0 (delta 0)

remote: Resolving deltas: 100% (21/21), completed with 4 local objects.

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.

remote: error: Trace: de35e860e6f088f7ca549a40b47655df

remote: error: See http://git.io/iEPt8g for more information.

remote: error: File xxx/aaa is 130.82 MB; this exceeds GitHub's file size limit of 100.00 MB

To https://github.com/xxx

 ! [remote rejected] master -> master (pre-receive hook declined)

error: failed to push some refs to 'https://github.com/xxx'

那你可能跟我一样,是在添加大文件100M之后,并且push失败了才下载的git lfs并且添加aaa到git lfs的。

只需要放弃之前添加aaa大文件那次的commit,重新提交文件就可以了

 

如何撤回commit,可以参考下面的文章

https://blog.csdn.net/quiet_girl/article/details/79487966

比如我自己的操作:

wodeMacBook-Pro:xxx$ git log

wodeMacBook-Pro:xxx$ git reset --hard ac89782e303fd38f423edc678dec823d43a65f35

wodeMacBook-Pro:xxx$ git lfs track "xxx/aaa"

wodeMacBook-Pro:xxx$ git add .

wodeMacBook-Pro:xxx$ git commit -m "add aaa"

wodeMacBook-Pro:xxx$ git push

2,(Framework文件的上传) 

如果你是要上传比较大的framework库文件,需要主要的是,framework是一个库文件,二进制文件是包含在里面的,直接添加framework到git lfs是没有用的,需要添加里面的二进制文件

比如我想添加GoogleMobileAds.framework

wodeMacBook-Pro:xxx$ git lfs track "XXX/ADs/GoogleMobileAds.framework/GoogleMobileAds"

这样就可以了 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Git LFS上传大文件到GitHub教程,以及可能会遇到的坑(使用了Git LFS却依然传不上超过100M的文件;framework库如何添加等) 的相关文章

  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • 重新打包存储库对于大型二进制文件有用吗?

    我正在尝试将大量历史记录从 Perforce 转换为 Git 并且一个文件夹 现在是 git 分支 包含大量大型二进制文件 我的问题是运行时内存不足git gc aggressive 我的主要问题是重新打包存储库是否可能对大型二进制文件产生
  • IntelliJ:查看本地和 git 提交/分支之间所有已更改文件的差异

    使用 IntelliJ 的 diff 查看器是检查代码的一种非常好的方法 因为您可以使用 IntelliJ 代码编辑器的所有功能 重构 完成等 在本地版本中进行更改 不幸的是 我还没有弄清楚当你在 IntelliJ 中进行代码审查时如何做最
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • readthedocs 中自动生成的索引文件

    我无法上传到阅读文档 http docs readthedocs io en latest 我为我的项目准备的文档 我正在尝试了解问题所在 该文档在本地构建良好make html但我无法上传 GitHub 项目是ASCII基因组 https
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • git reset 命令中的 ~1 是什么意思?

    git 重置 HEAD 1 我的印象是 1 的意思是 从 HEAD 开始 遵循 1 链接 并将 HEAD 标签设置为新的提交节点 我正期待着 git 重置 HEAD 2 跟随 2 个链接 然后设置 HEAD 标签 但是 如果我尝试它 我会收
  • 哪个是更智能的 git 协议,ssh 或 git(通过 ssh)或 https 协议?

    哪个高效 SSH 或 Git 文件压缩 我对 Git 的理解是 git 协议很智能 因为通信两端都有一个协议代理来压缩文件传输 从而通过有效地使用网络带宽来实现更快的克隆 From 我发现了以下说法 For secure authentic
  • 丢失了我在 GIT 中的提交。你会不小心删除提交吗?

    我正在使用 git gui 但看不到我的分支 我知道我今天检查了一些东西 在完成提交并使用分支查看器验证后 我更改为较早的分支 我对之前的分支进行了更改 然后想返回到当前的分支 但我再也看不到它了 任何帮助都会很棒 回答你的问题 在大多数情
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • 如何合并两个连续的 git 存储库

    我有一个相当独特的情况 我有一个名为 Project1 的存储库 我在其中工作了一些时间 几个月 一年后 我创建了存储库 Project1 Again 从 Project1 停止的地方开始 现在 我希望修订历史记录是连续的 因此我希望它们合
  • git config --global user.email 重新安装后不会让我更改电子邮件

    嘿 我完全重新安装了 Github 删除了所有文件 现在我再次安装了它 但是当我尝试设置它时 我遇到了一些问题 git config global user email 电子邮件受保护 cdn cgi l email protection
  • 默认情况下 git merge -Xignore-space-change

    我该如何设置该选项ignore space change对于所有合并使用git config 我也许可以使用别名merge 但因为我希望该设置应用于git stash pop git stash apply git pull and git
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My

随机推荐

  • adb常用命令

    查看当前连接设备 adb devices如果发现多个设备 adb s 设备号 其他指令 举例 adb s devicel install xxx apk 查看顶部Activity windows环境下 adb shell dumpsys a
  • SIGSEGV与SIGBUS

    http www cnblogs com whyandinside archive 2013 01 07 2848806 html SIGSEGV与SIGBUS SIGBUS Bus error 意味着指针所对应的地址是有效地址 但总线不能
  • CMakeLists.txt 的阅读

    前言 CMake允许开发者编写一种平台无关的 CMakeList txt 文件来定制整个编译流程 然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件 如 Unix 的 Makefile 或 Windows 的 Vi
  • 【Proteus仿真】【51单片机】蔬菜大棚温湿度控制系统设计

    文章目录 一 主要功能 二 使用步骤 三 硬件资源 四 软件设计 1 主要代码 五 实验现象 联系作者 一 主要功能 1 温湿度上下限阈值设定 2 超限声光报警加热 加湿 3 温湿度显示 二 使用步骤 系统运行后 LCD1602显示当前温湿
  • Nacos快速入门(三):Spring Cloud Alibaba Nacos实现服务注册与发现

    1 前言 Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案 目前已经加入Spring Cloud项目 跟随Spring Cloud一起维护 集成Nacos需要使用Spring Cloud Alibaba N
  • JS parseInt() 、parseFloat()、Number()

    介绍 parseInt string radix parseFloat string Number object 举例 总结 parseInt string radix parseFloat string Number object 介绍
  • c语言中宏定义的关键字,C语言中,宏定义“define”的一种有趣的用法

    在C语言中 宏定义也是一种很重要的概念 可以使用 define 来定义一个常量 也可以用 define 来实现一些功能 这一篇文章中 我们将介绍一下 在C语言中 使用宏定义 define 实现的一个小的例子 我们可以借助 define 将很
  • 汇编:按给定格式在屏幕中间显示字符串

    代码如下 assume cs code ds data ss stac data segment db welcome to masm db 02h 24h 71h data ends stac segment dw 0 0 0 0 0 0
  • Lion:闭源大语言模型的对抗蒸馏

    Lion 闭源大语言模型的对抗蒸馏 Lion 由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架 成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型 命名为 Lion 在只有 70k训练数据的情况下 实现了近 95 的
  • 两台服务器文件镜像,两台云服务器镜像

    两台云服务器镜像 内容精选 换一换 请您在购买前确保已完成注册和充值 详细操作请参见如何注册公有云管理控制台的用户 登录管理控制台 单击管理控制台左上角的 选择区域和项目 选择 计算 gt 弹性云服务器 单击 购买弹性云服务器 系统进入购买
  • 删除单链表中的指定节点

    题目1 编写在带头结点的单链表L中删除一个最小值结点的高效算法 假设最小值结点是唯一的 时间复杂度为O n 空间复杂度为O 1 问题解答 算法思想 用p从头至尾扫描单链表 pre指向 p结点的前驱 用minp保存值最小的结点指针 初值为p
  • 那些方法可以绕过服务器对文件内容的检测,文件上传漏洞

    文件上传 文件上传就是在一些web应用中允许用户上传图片 文本等相应文件到服务器指定的位置 而文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中 之后通过url去访问以执行代码达到攻击的目的 可以成功攻击的条件 1 存放上传文件
  • Linux网络编程:IO多路复用——epoll

    服务器端代码 epoll event poll include
  • mysql sqlite 语法_浅谈sqlite与mysql的数据库语法差异_沃航科技

    由于一些原因 小沃将自己的官方网站从原来的阿里云迁移到了justg的vps上 服务器配置也从原理的1核1G变为了1核512M 虽然服务器性能所有下降 但是毕竟小沃的官网是使用了百度的cdn的 因此应付高并发还是没有什么问题的 考虑到服务器性
  • Go框架之Gin应用到原理源码

    Go框架之Gin应用到原理源码 基本概览 目前 golang使用最广泛的Web 微框架之一 具有高性能的优点 基于 httprouter 它提供了类似martini但更好性能 路由性能约快40倍 的API服务 本文将从基本应用快速上手到中间
  • C++中unique函数

    C 中unique函数 文章一 unique是STL中很实用的函数之一 需要 include 感谢各位提醒 下面来简单介绍一下它的作用 unique的作用是 去掉 容器中相邻元素的重复元素 这里去掉要加一个引号 为什么呢 是因为它实质上是一
  • Java面试题全集(下)

    这部分主要是开源Java EE框架方面的内容 包括hibernate MyBatis spring Spring MVC等 由于Struts 2已经是明日黄花 在这里就不讨论Struts 2的面试题 如果需要了解相关内容 可以参考我的另一篇
  • 封装高德地图定位组件

  • 回顾2019,展望2020

    同2018一年一样 2019年同样是充实的一年 回顾一下2019年 做出总结 不足的地方在未来的日子里改进 顺便展望2020年 给自己一个比较清晰的目标 2019年工作之外的时间基本都花在学习英语和编程相关的技术上 学习英语花费的时间多于学
  • 使用Git LFS上传大文件到GitHub教程,以及可能会遇到的坑(使用了Git LFS却依然传不上超过100M的文件;framework库如何添加等)

    什么是Git LFS Git LFS Large File Storage 是 Github 开发的一个 Git 的扩展 用于实现 Git 对大文件的支持 简单的说 就是如果你想传超过100M的二进制文件到GitHub 你就要用Git LF