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

推荐订阅源

D
Docker
F
Fortinet All Blogs
爱范儿
爱范儿
博客园 - Franky
MyScale Blog
MyScale Blog
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
B
Blog
P
Proofpoint News Feed
IT之家
IT之家
宝玉的分享
宝玉的分享
D
DataBreaches.Net
S
SegmentFault 最新的问题
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
M
MIT News - Artificial intelligence
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
量子位
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

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文件)