Hexo部署报错Spawn failed及解决方案

原文链接:https://perry96.com/archives/882898e3.html

许可协议:署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Hexo部署报错Spawn failed及解决方案

1.问题描述

今天下午在使用hexo d -g命令进行博客部署时遇到了名为Spawn failed的报错,具体信息见下图。

spawn

2.问题分析和解决

2.1 问题原因

在网上通过简单的查询之后发现问题出在.deploy_git文件夹中,这个文件夹是hexo框架渲染生成的所有文件的一个本地git仓库,hexo d命令就是将整个.deploy_git文件夹的内容push到GitHub上的。

deploy-git

网上的一个解决方案是将GitHub上的xxx.github.io仓库克隆下来并改名成.deploy_git来替换原来的,这种改名方式在Windows系统中是无法完成的。简单分析这种方法的原理无非就是将.deploy_git的内容回滚到和GitHub上同步的状态。

结合刚刚的分析,不妨打开.deploy_git\.git\logs路径下的HEAD查看一下仓库的状态历史(红线范围内的记录是我在第一次报错之后的多次无脑尝试,可以忽视)。

git-head

再打开GitHub上的提交记录可以发现最近的时间点是12:51:46。

git-head

所以可以知道是那些多余本地提交导致了报错。

2.2 问题解决

现在的解决思路就是将本地仓库的状态进行回滚,对应的git命令如下。

git reset --hard commitId
--hard强制将缓存区和工作目录都同步到你指定的commitId所对应的提交。
执行之后HEAD多了下面的一条记录(圈出的那一串数字就是我自己仓库中12:51:46时间对应的commit的ID号)。

reset

重新执行hexo d -g部署博客,发现问题成功解决。

posted @ 2020-07-31 21:07  gkm0120  阅读(5087)  评论(0编辑  收藏  举报