记一次异常艰难的博客部署(二)—— hexo d 指令向GitHub传输大文件导致的 GH001 报错解决

前言

由于对 GitHub 规定的传输文件大小限制不了解,导致在部署 159M 大小的视频到博客时出现报错。

问题描述

1
2
3
4
5
6
7
8
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File img/Artical/Directed by Quentin Tarantino.mp4 is 159.60 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/Rimbuad-Lee/Rimbaud-Lee.github.io.git
! [remote rejected] HEAD -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/Rimbuad-Lee/Rimbaud-Lee.github.io.git'
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html

错误提示得很清楚,由于视频文件过大,超过了 GitHub 的最大限度 100.00M ,导致部署失败。

所以我删除了视频文件,用hexo g-d的命令重新部署了博客,但结果还是失败了,还是会报上面的错。那是因为在 hexo d 的时候,之前提交的版本里面已经包含过这些大文件了,虽然后来在新版本里面删除了大文件,但是之前的记录仍然存在。所以在统一提交的时候还是会失败的。要想成功部署,必须把该文件从本地仓库移除掉并且把以前提交过的记录全部修改。

解决方法

在博客根目录中,有个.deploy_git文件夹,在这个目录中打开Git Bash,执行命令。

1.查看提交日志

1
$ git log

2.找到之前提交的 commit 版本与对应的 id,重置

1
$ git reset xxxxxxxxxxxxxxxxxxxxx

这里可以查到我最近提交的时间,以及对应的一串数字字母组合(即对应的版本 id),找到你想恢复的那个版本的那串数字字母组合,输入指令git reset xxxxxxxxxxxxxxxxxxx,即可解决问题。

在确定到底要恢复哪个版本时,我们可以到 GitHub 中查看更详细的信息,包括每一次提交的时间,编号以及更改的具体代码,这样我们就更加清楚我们需要恢复到哪一个版本中去。

这里列出了最近的提交条目。

这里是每次提交的详细内容,包括提交时间,版本id,修改内容等等。