hexo push trouble shooting

1
2
3
4
5
6
7
8
9
10
11
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: The remote end hung up unexpectedly 40.00 KiB/s
Writing objects: 100% (222/222), 22.76 MiB | 370.00 KiB/s, done.
Total 222 (delta 57), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (/Users/yee/Desktop/blog/node_modules/hexo-util/lib/spawn.js:52:19)
at ChildProcess.emit (events.js:200:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)

这个问题我首先去查了 Spawn faileds 这个问题,发现引起这个报错的关键还是在上面,需要 case-by-case 的解决,error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54.

可能的解决方案由下面几种

  • restart VPN
  • set http buffer 之类的操作
  • 不要通过 http 进行 pull/push

有人提到这个问题是因为代理问题,不应该走 http 代理

👇说明我肯定是走代理了(而且走的是 sock 5 代理,可以在 ss 的设置中看到 http 代理和 sock5 代理,但是我目前找不到 git config file

1
2
3
4
5
6
7
nothing to commit, working tree clean
fatal: unable to access 'https://github.com/Yeeef/Yeeef.github.io.git/': Failed to connect to 127.0.0.1 port 1086: Connection refused
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (/Users/yee/Desktop/blog/node_modules/hexo-util/lib/spawn.js:52:19)
at ChildProcess.emit (events.js:200:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)

👇当前的 global gitconfig, located at ~/.gitconfig

1
2
3
4
[http "https://github.com"]
proxy = socks5://127.0.0.1:1086
[https "https://github.com"]
proxy = socks5://127.0.0.1:1086

一个普通的 git file 能push 吗?可以, 说明并不是我 general git 代理的问题;

查看我的 blog/_config.yaml 文件, 发现

1
2
3
4
deploy:
type: git
repo: https://github.com/Yeeef/Yeeef.github.io.git
branch: master

so, maybe it is caused by this?

1
2
3
4
deploy:
type: git
repo: git@github.com:Yeeef/Yeeef.github.io.git
branch: master

success!

总之这是一个和代理有关的问题

对一些原理的理解

  • hexo deploy 实际上是把 .deploy_git 的内容 push 到云端;
  • 本地的 blog 仓库完全不需要 .git