报错信息
如图:
主要报错信息如下:
1 | FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html |
解决方案
参考内容
这一部分主要参考以下博客内容编写:
- Hexo错误:spawn failed的解决方法
- [最全]解决将Hexo部署到GitHub时报错:Error: Spawn failed
- 解决 Spawn failed 问题的三种方法
- hexo发生error:spawn failed错误的解决方法
方案一:更换更加稳定的网络环境(如使用手机移动热点)
这个方案解决了我的问题。
心路历程:
在查阅了网上各种资料之后我的问题迟迟得不到有效解决,网上主流的解决方案都是删除.deploy_git
文件夹或者修改其中的文件内容。但是这样做了之后依然会间歇性的出现以上问题。在询问ChatGPT以及结合网上的方法之后,我决定尝试直接对 GitHub 网站进行SSH连接。之后果然没有得到正常的回复信息,但也并没有得到像方案五说的一样的结果,而是显示已经自动被重置到443端口。
结合此前观察到的问题“间歇性”发作,以及使用家里的 WiFi 连接经常性的不能稳定的登录外网,(以及我在用家里的网打游戏的时候总是莫名其妙卡顿的经历),我突然意识到是网络环境不稳定的问题。之后我就连接了移动热点,果然解决了这个问题。(当然实际上是什么原理我也不清楚)
此前在网上一直没有找到与我有类似情况的人,不过反倒在发布这个帖子快一周后的今天(2025年2月10日)(为什么现在才更。。),我又重新搜索这个问题的时候,找到了与我有类似情况的人(以及另一个与我有类似情况的人)。只可惜当初没有找到这个博客,似乎AI也没有为我整理这一信息,导致花费了很多时间去踩坑。
方案二:修改或删除 .deplot_git 文件夹
问题大多是因为 git 进行push或者hexo d的时候改变了一些.deploy_git文件下的内容参考内容第4条,因此修改其中内容,或者直接删除这一文件夹即可(这个文件夹在每一次 hexo d 的时候都会更新,不存在会自动创建,删除不会影响博客的正常工作)。
最直接的方法:
1 | rm -rf .deploy_git/ # 或手动删除根目录下的 .deploy_git 文件夹 |
之后执行
1 | hexo clean && hexo g && hexo d |
观察能否正常运行。
在参考内容第1条中还给出了以下方法:
1 | cd .deploy_git |
或
找到.deploy_git文件夹中的index.lock文件,删除。
不过我没有测试(实际上也没有条件测试,因为我的问题不是通过这个方法解决的),不保证有效性。
实际上方案二是网上最常见的解决方案,而且都是通过删除文件夹并进一步配置实现的。
方案三:重装 hexo-deployer-git
感觉与方案二类似。
这是我最初使用的方法,但是后来也发现是间歇性起效,实际上也不是解决我的问题的根源。
当然了,可以一试。
方案四:使用 SSH 地址
参见参考内容第2或第3条,写的都比较简洁明了。
方案五:检查github访问权限
参见参考内容第2条。这一解决方案虽然没有直接解决我的问题,但也是对我想出方案一有一点启发吧。。
方案六:检查代理设置
这也算是各种网络问题的经典解决方案了,就好比我玩坦克世界
的时候如果开着代理就没法正常登录游戏(为什么其他游戏可以比如战雷)。
首先可以尝试打开或关闭你的软件(梯子)上的代理设置(当然,也可以直接重启计算机)。尝试问题是否解决。
没有解决的话,参见参考内容第1条
在开启代理设置的情况下,检查是否正确设置git代理命令:
1 | git config --global http.proxy http://127.0.0.1:1080 |
在关闭代理设置的情况下,可以取消git代理:
1 | git config --global --unset http.proxy |
之后进一步尝试推送内容,观察是否可以正常运行。
后记
可能还有其他解决方案,这里就不继续整理了。
如果问题迟迟得不到解决,假如是突然出现的这个问题,此前没有,那么最终的解决方案可能就是保留必要的配置文件,从头搭一遍博客(或者回滚到之前的版本,但是其实 GitHub 上保存的版本快照已经在 Hexo 推送更改了文件结构了,没有办法直接拿来用,除非你还开辟了一个专门存储博客的本地文件的 GitHub 仓库)
假如是刚开始搭建博客就遇到这个问题,那么或许也可以考虑换一条路? Hexo 也不算新了,速度也比较慢。或许你可以考虑更快的 Hugo ?或者是同样搭建简单的 Jekyll ?毕竟试错成本也不算大。多试一试,总是好的。