問題の再現

この問題を再現するのは簡単です。おそらくほとんどがネットワークに起因する問題なので、プロキシツールやアクセラレータなどのネットワーク最適化・高速化ソフトをすべてオフにして、プッシュするデバイスのネットワーク環境を中国大陸内にすれば、高い確率でこの問題を再現できます…

問題の解決

この種の問題は通常、ネットワーク環境の不安定さによって引き起こされるため、まずネットワークの方向から解決に取り組みます。まずはネットワークプロキシツールを使って現在のデバイスのネットワーク環境を中継し、Hexoがプッシュするリソースを他のデバイスへ中継して、そこからGitHubへ送信します

0x0001

個人的にはClashをネットワークプロキシの媒体として使っているので、プロキシのポートを確認します

7890というポートを記録しておきます。v2rayプロキシを使っている場合、デフォルトのポートは通常1080です

0x0002

ターミナルで以下のコマンドを使ってgitのグローバルプロキシ設定を変更します

git config --global http.proxy http://127.0.0.1:7890

--globalはグローバル、127.0.0.1はローカルマシン、7890は先ほど記録したプロキシポートを指します

0x0003

プッシュ先のアドレスを変更し、httpsプロトコルのアドレスに切り替えます。GitHubリポジトリで「Code>HTTPS」をクリックしてコピーできます

次に、Hexoサイトのルートディレクトリにある_config.yml設定ファイルを編集して、プッシュ先のアドレスを変更します

以前からsshではなくhttpsのアドレスを使っていた場合は、この手順をスキップできます

0x0004

あとはHexoの三連発です!プッシュが成功したか確認しましょう

hexo cl && hexo g && hexo d

プロキシツールを有効にするのを忘れずに