问题

和往常一样对blog文件夹下的文件进行修改后,在VS code终端执行hexo clean && hexo g && hexo d 的时候,产生了

1
2
fatal: unable to access 'https://github.com/NanamiAkari/NanamiAkari.github.io.git/': Recv failure: Connection was reset
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html

的报错,重试了很多次,也还是没能解决。报错如下图:
报错截图

可能原因

终端没有经过代理

因为Github有时候需要科学上网,所以有一个代理能提升上传速度,有时候出现报错的原因就是终端没有经过代理。
要为终端设置代理,可以在终端中输入以下命令:

1
2
3
4
5
6
7
8
9
10
11
12
//vscode 终端
set http_proxy=http://127.0.0.1:7890 //7890改为自己计算机的代理端口
set https_proxy=http://127.0.0.1:7890 //7890改为自己计算机的代理端口
//git
git config --global http.proxy 'socks5://127.0.0.1:7890' //7890改为自己计算机的代理端口
git config --global https.proxy 'socks5://127.0.0.1:7890' //7890改为自己计算机的代理端口
//PowerShell
$env:http_proxy="http://127.0.0.1:7890" //7890改为自己计算机的代理端口
$env:https_proxy="http://127.0.0.1:7890" //7890改为自己计算机的代理端口
//npm
npm config set proxy http://127.0.0.1:7890 //7890改为自己计算机的代理端口
npm config set https-proxy http://127.0.0.1:7890 //7890改为自己计算机的代理端口

计算机本地端口查看:电脑屏幕右下角wifi标志右键->网络和Internet设置->代理->手动设置代理->编辑,就可以看到计算机本地的IP地址和端口
这样就设置好了终端的代理。

上传时候自己账号的Github网页没有关闭

再执行hexo d命令的时候本地与Github进行连接,自己账号登录的Github网页可能会影响本地与GitHub的连接,关闭网页重试即可上传成功。

.deploy_git文件夹

查询资料后发现可能的原因是.deploy_git文件夹的存在,hexo d命令是把渲染生成的.deploy_git文件夹push到github。
.deploy_git文件夹
报错可能是因为push的时候旧的deploy_git和新生成的deploy_git文件夹内容有冲突导致,解决方案就是将其删除然后重复上述操作。
详细可参考CSDN上的大佬发布的一篇博客

环境问题

实际操作中,在VS code终端执行hexo clean && hexo g && hexo d 命令无果并产生报错,但是使用git的方法执行命令就能顺利执行了。
git文件
实测git-bash.exe和git-cmd.exe都可以成功执行命令,出现百分制的进度就大概率成功了。
git

Github公钥出现错误或者没有公钥

出现spawn failed报错的原因还有可能是Github公钥出现错误或者没有公钥,所以无法建立本地与GitHub的连接。
明白了原因就可以实施解决方案了:
打开git-cmd.exe,输入以下命令:

1
ssh -T git@github.com

用于检测是否能够与GitHub建立连接,出现以下结果:
无法建立连接
就说明可能是Github公钥出现错误或者没有公钥,这时候我们首先在本地创建SSH keys,输入以下命令:

1
ssh-keygen -t rsa -C "yourmail"   # yourmail为Github注册时使用的邮箱

来创建本地SSH,第一处输入为创建本地SSH的目录,默认为:C:\Users{你的用户名}/.ssh/id_rsa;第二处输入为SSH的passphrase就是密码,回车就是不设置密码,第三处输入为确认密码。
创建本地SSH
如果原来本地就有SSH的话,可能会出现文件已存在是否覆盖的选项,选择”y”覆盖即可,然后就会生成新的本地SSH
覆盖原有SSH
生成新的SSH
然后进入文件浏览器找到这个SSH文件并用记事本打开,复制其中内容:
SSH目录
SSH文本
接着进入你的GitHub账号,点击右上角的你的头像,选择settings:
Settings
然后在左边选项栏找到SSH and GPG keys,选中后在SSH keys一栏右边选择New SSH key来创建新的公钥:
Git-SSH
填写SSH
创建完成后,在git_cmd.exe中输入以下命令再次测试连接是否成功,出现以下结果就是连接成功了:

1
ssh -T git@github.com

连接成功
这时候再部署到GitHub就可以成功了。

其他

如果上述方法都解决不了的话,可以尝试查阅官方文档