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

今天下午在部署博客时又遇到了一个名为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命令如下。

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

    reset

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

------------- 本文结束 感谢您的阅读 -------------

本文标题:Hexo部署报错Spawn failed及解决方案

文章作者:Perry

发布时间:2019年06月28日 - 14:22

最后更新:2019年09月19日 - 13:47

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

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

0%