惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
博客园 - 叶小钗
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
N
Netflix TechBlog - Medium
B
Blog
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理

LanYunのBlog

优化macOS Dock栏的显示与隐藏 解决macOS全屏模式下某些情况显示原始鼠标指针的问题 Yarn从Classic迁移到Modern nginx自编译 用santa对二进制进行监控和授权 ESXI 8.0安装黑群晖DSM 7.x openwrt编译过程记录 编译monero For macOS ARM 自建busuanzi不蒜子平台统计平台 浅记博客更新日志 (机翻)Kubo配置文件 修改brew services中服务的启动参数 技术杂记📝 解决Surge模块不能同步问题 为Arch Linux配置邮件服务 自编译NutClient-ESXI,更改邮件逻辑 解决ESXI和群晖使用SSH密钥登录问题 为J4125软路由ESXI中群晖提供UPS服务 在arch linux上搭建rustdesk server 解决虚拟机扩容中GPT PMBR大小不符问题 搭建Tuic V5 优雅地为macOS提供python多版本的支持 修复root路径下文件权限问题 解决macOS 14上利用Whisky运行steam时有关问题 在macOS中用PhpStorm配置Xdebug调试 利用CloudFlare Workers快速自建一个IP获取器 如何自动续期证书? 从0开始速配VPS用于网站等 搭建一个基于ChatGPT的QQ机器人(Yunzai-Bot) For Mac 010 Editor For Mac 13.0.1 Crack 破解
最近使用Git LFS仓库的惨痛教训以及hexo d的实现原理等总结
LanYun · 2022-03-12 · via LanYunのBlog

遇到问题:在git push的时候遇到个大于100mb的文件,导致推不上去

于是通过Git报错信息中,去GitHub上找到了对应的解决办法.

可是当我弄好LFS后(如果不清楚如何配置Git LFS的话下面会提到),重新push发现依然不行,通过我不懈努力,终于成功解决了这个问题!

接下来是我解决这个问题的经验(这个经验来之不易,花了较多时间,在此总结分享给大家)

由于在最开始commit的时候,就把大于100Mb的文件弄进去了
所以我们的第一个操作就是用 git rest —mixed **(这个需要使用git reflog或git log 命令查询commit之前的hash) 命令返回到commit之前的状态.

然后确保*.gitattributes文件存在且配置正确(配置代码:git lfs track “.psd” 意思是后缀psd的文件传到LFS).

之后就git add . && git commit -m “add .gitattributes” && git push 就OK👌了~

tips: 不会配置 LFS (不知道怎么弄)?

看这个链接🔗: 管理大型文件

hexo d 相关

在弄完博客备份后(也就是解决上面的问题后),发现hexo d 推送不上去(和上面的问题一样).

但在了解原理后,问题也就好解决了.

解决办法:

进入博客目录下的隐藏目录(.deploy_git).

在隐藏目录下配置Git LFS.并按照上面的解决办法解决问题即可.

其他 相关

在弄完Git LFS后,发现博客调用文件下来的是指针,且通过指针获取原文件困难(颇为复杂),且无法(也许是我不知道或没有好的办法)获取原文件的直链🔗用来下载.
故觉得目前LFS对于我来说没啥用.

恰好了解到Gitee上面的仓库的LFS可以直接下载,感觉貌似可以获取直链接🔗,把仓库开源需要绑定手机号,使用Page功能又要身份证等信息来实名制,所以想想这又是国内的服务,所以就算了.没弄了

Gitee和GitHub对于LFS而言,有些少了,1G的存储和每月1G的流量.

但是GitHub上已经在LFS上添加了文件,如何删除呢?

确实有些麻烦.需要我使用 filter-branch 命令或 BFG Repo-Cleaner 从仓库的 Git 历史记录中删除文件.

这显然是比较麻烦的.官方参考解决链接🔗

这里我给大家2个解决问题的链接🔗(有能力建议看,懒的话直接看下面我怎么操作的):1 2

这2个链接都是在讲删除历史记录该怎么操作.

接下来我会开始讲解,开始操作过程中遇到的问题(无论是否按照教程肯定会遇到且网上目前无解决方案)以及如何解决.

懒得讲解了,直接按照我的代码操作,不出意外的话是没有什么问题的.如果按照我这个操作有问题,可以评论区留言或者邮箱告诉我,我会尽力解决你的问题~

开始操作:

  1. 下载bfg.jar 点我开始下载bfg.jar 并将该文件放在一个目录下,例如下载目录.

  2. 打开终端terminal 通过命令cd 进入下载目录(这个目录地址取决于第一步).

  3. 再执行以下命令.

1
git clone https://github.com/LanYunDev/XXX.git或者git@github.com:LanYunDev/XXX.git(填写你需要删除历史记录的仓库地址) --mirror && java -jar bfg.jar --strip-blobs-bigger-than 100M XXX.git(添加你文件夹的名称,这行代码是删除大于100MB文件记录,使用java -jar bfg.jar -D ‘XX’可以删除XX文件记录) && cd XXX.git && git reflog expire --expire=now --all && git gc --prune=now --aggressive && git config --unset remote.origin.mirror && git push -u origin main -f

代码示例:

1
git clone https://github.com/LanYunDev/Blog_back.git --mirror && java -jar bfg.jar --strip-blobs-bigger-than 100M Blog_back.git && cd Blog_back.git && git reflog expire --expire=now --all && git gc --prune=now --aggressive && git config --unset remote.origin.mirror && git push -u origin main -f

上面的操作可以帮助你删除.

接下来我来说说替代方案.

由于GitHub限制100MB,我们可以将大于100MB的文件通过压缩包分卷的方式来实现上传操作.(我这样做的目的,把GitHub当成了一个微型云盘了.)

另外说说,hexo博客如何添加文件下载功能呢?

只需在source文件中新建一个文件夹,例如命名为Download.

那么在markdown中引用的格式为[点我开始下载](../Download/XXX文件)