Git LFS相关

遇到问题:在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或者[email protected]: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文件)