【Git】GitHub 上传超过 100MB 的大文件(git

您所在的位置:网站首页 github上传大文件超过1g 【Git】GitHub 上传超过 100MB 的大文件(git

【Git】GitHub 上传超过 100MB 的大文件(git

2023-11-28 14:44| 来源: 网络整理| 查看: 265

导读: 最近在 GitHub 上传代码时,需要上传一些大文件,有时候甚至会超过 100MB,则由于 GitHub 不支持上传如此大的文件,所以提交代码时往往都会报错!!!

# 类似报错信息 Total 3007 (delta 664), reused 0 (delta 0) remote: error: GH001: Large files detected. remote: error: Trace: 7b7de6b9372ee392e0f3961b05ea6f33 remote: error: See http://git.io/iEPt8g for more information. remote: error: File XXX/XXX/XXX is 234 MB; this exceeds GitHub‘s file size limit of 100.00 MB remote: error: File XXX/XXX/XXX is 234 MB; this exceeds GitHub‘s file size limit of 100.00 MB。

经过一番资料查询,暂时最优的处理方式就是借助 git lfs 的方式。

Git LFSGit LFS 基本介绍

Git LFS 是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。

git-grow

git-grow

在游戏开发过程中,设计资源占用了很大一部分空间。像 png、psd 等文件是二进制 (blob) 的,体积也很庞大。

但 git 的 diff/patch 等是基于文件行的,对于二进制文件来说,git 需要存储每次 commit 的改动。

每次当二进制文件修改,发生变化的时候,都会产生额外的提交量,导致 clone 和 pull 的数据量大增,在线仓库的体积也会迅速增长。

LFS(Large File Storage) 就是为了解决这一问题而产生的工具。

它将你所标记的大文件保存至另外的仓库,而在主仓库仅保留其轻量级指针;则在检出版本时,根据指针的变化情况下更新对应的大文件,而不是在本地保存所有版本的大文件。

Store

安装 Git LFS

根据系统环境将 git - lfs 安装到本机。

Linuxcurl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash # 安装 git - lfs 到本机 sudo apt-get install git-lfs Mac# 安装HomeBrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # 安装 git - lfs 到本机 brew install git-lfs

Brew Install Git LFS

Windows# 下载安装 Windows installer https://github.com/github/git-lfs/releases # 运行 windows installer 开启 LFS 功能

首先,到达指定 git 项目文件夹,执行安装命令,开启 lfs 功能。

$ cd xxx # 只需执行一次即可,即可开启 lfs 功能 $ git lfs install

其次,选择您希望 Git LFS 管理的文件类型,默认会生成一个 .gitattributes 文件。

# 此处建议此种格式,可以统一关联 .zip 类型的文件(具体文件类型,视项目而定) $ git lfs track "*.zip" 提交大文件

如果将 .gitattributes 文件和大文件一起提交,有可能会报错误:

git push origin master - error

所以此处建议分两步,优先建议先将 .gitattributes 文件提交到 git 云端上面。

$ cd xxx $ git add .gitattributes $ git commit -m '提交 .gitattributes 文件' $ git push origin master

git push origin master - gitattributes

然后再次通过 Git LFS 提交大文件。

# 其中 xxx 代表大文件路径 $ git add xxx $ git commit -m '提交 xxx 大文件' $ git push origin master

此过程中可能会遇到如下报错:

mxgx:JJC_GoWeb jijiucheng$ git push origin master Uploading LFS objects: 0% (0/1), 352 MB | 1.7 MB/s, done. Post https://lfs.github.com/jijiucheng/JJC_GoWeb/objects/29642e323ee844d60b3a823c404bf80d41c5ab9bfd50bc22476850e52aaad112/verify: dial tcp 13.250.168.23:443: connect: connection refused error: failed to push some refs to 'https://github.com/jijiucheng/JJC_GoWeb.git'

git push origin master - largeFileError

此时需要排查一些相关问题:

可能是 DNS 的问题,建议添加 8.8.8.8;可能是走了代理,建议把代理关闭再重试(本人此处失败就是因为这个原因);网络是否正常连接,不能出现中断的情况。

此处说明:

在网上查找了一些相关资料,发现有好多都是提示使用 $ git push -u origin master 或 $ git push -u origin master -f 指令解决的,但是本人这边验证的暂时无效,没有解决问题。

当排查完原因后,再次执行推送到远程的指令即可。

Git-LFS 常用指令/// 查看 git-lfs 相关指令 git lfs --help /// 查看 git-lfs 当前环境版本等信息 git lfs env /// 查看 git-lfs 当前版本号 git lfs version /// 查看 git-lfs 文件状态 git lfs status /// 查看 git-lfs 文件内容填充副本 git lfs checkout /// 查看 git-lfs 扩展信息 git lfs ext /// 检查 git-lfs 文件一致性 git lfs fsck /// 查看 git-lfs 命令的错误信息 git lfs logs /// 显示 git-lfs 当前分支下所有的文件信息 git lfs ls-files /// 安装 git-lfs 配置,只需执行一次即可,即可开启 lfs 功能 git lfs install /// 关闭 lfs 功能 git lfs uninstall /// 从远程端拉取 git-lfs 文件 git lfs fetch /// 从远处端拉取 git-lfs 文件,并标明变更文件 git lfs pull /// 更新 git-lfs 文件 git lfs update /// 此处建议此种格式,可以统一关联 .zip 类型的文件(具体文件类型,视项目而定) git lfs track "*.zip" /// 取消关联某文件 git lfs untrack "*.zip" /// 从本地存储中删除旧的 git-lfs 文件 git lfs prune xxx /// 对 git-lfs 文件去重(同时会显示当前分支下所有 git-lfs 文件) git lfs dedup /// 对 git-lfs 文件设置为 “锁定” 状态 git lfs lock xxx /// 对 git-lfs 文件移除 “锁定” 状态 git lfs unlock xxx /// 查看当前 git-lfs 服务器上所有 “锁定” 状态文件 git lfs locks /// 迁移历史信息到 git-lfs 或 从 git-lfs 迁移到历史信息 git lfs migrate 参考链接简书 - amosbake - Git LFS的使用简书 - 码农大表哥 - Github如何上传超过100M的大文件廖雪峰的官方网站 - 版本回退CSDN - 无极侠岚 - sourcetree 不停的让输入密码,报 password requiredStackOverflow - git error: failed to push some refs to remoteGitHub - git-lfs - git lfs fetch hangs#3003GitHub - git-lfs - Cannot push lfs to GitHub. Getting connection refused. #2474版权声明

原文作者:苜蓿鬼仙(苜蓿、jijiucheng)

原文链接:GitHub.io - 苜蓿鬼仙 - 【Blog】GitHub 上传超过 100MB 的大文件(git-lfs)

发表日期:2020/04/23 09:00:00

更新日期:2021/12/27 12:34:00

-

GitHub:GitHub - jijiucheng

个人博客:GitHub.io - 苜蓿鬼仙

小专栏:小专栏 - 苜蓿鬼仙

掘金:掘金 - 苜蓿鬼仙

微博:微博 - 苜蓿鬼仙

公众号:微信 - 苜蓿小站

小程序:微信 - 苜蓿小站

文档信息本文作者:苜蓿鬼仙本文链接:https://jijiucheng.github.io/2020/04/23/GitHub-UploadLargeFile/版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3