原文鏈接:https://perry96.com/archives/882898e3.html
許可協議:署名-非商業性使用-禁止演繹 4.0 國際 轉載請保留原文鏈接及作者。
Hexo部署報錯Spawn failed及解決方案
1.問題描述
今天下午在使用hexo d -g
命令進行博客部署時遇到了名為Spawn failed
的報錯,具體信息見下圖。
2.問題分析和解決
2.1 問題原因
在網上通過簡單的查詢之后發現問題出在.deploy_git
文件夾中,這個文件夾是hexo
框架渲染生成的所有文件的一個本地git
倉庫,hexo d
命令就是將整個.deploy_git
文件夾的內容push到GitHub上的。
網上的一個解決方案是將GitHub上的xxx.github.io倉庫克隆下來並改名成.deploy_git
來替換原來的,這種改名方式在Windows系統中是無法完成的。簡單分析這種方法的原理無非就是將.deploy_git
的內容回滾到和GitHub上同步的狀態。
結合剛剛的分析,不妨打開.deploy_git\.git\logs
路徑下的HEAD查看一下倉庫的狀態歷史(紅線范圍內的記錄是我在第一次報錯之后的多次無腦嘗試,可以忽視)。
再打開GitHub上的提交記錄可以發現最近的時間點是12:51:46。
所以可以知道是那些多余本地提交導致了報錯。
2.2 問題解決
現在的解決思路就是將本地倉庫的狀態進行回滾,對應的git命令如下。
git reset --hard commitId
--hard強制將緩存區和工作目錄都同步到你指定的commitId
所對應的提交。
執行之后HEAD多了下面的一條記錄(圈出的那一串數字就是我自己倉庫中12:51:46時間對應的commit的ID號)。
重新執行hexo d -g部署博客,發現問題成功解決。