终于把这 Git 给收拾好了,我又回来啦啊哈哈哈哈!

事情是这样的,上个月,我从旧金山国际机场入境抵达美国。为什么要来阿美捏?因为咱争取到了一个来 UC Berkeley 读交换生的机会,封面就是 Berkeley 百团大战时校门口的盛况。

自从一月份飞机落地之后到现在,我都被各种各样的事情围住,忙得焦头烂额,什么房租啊、银行卡啊、电气费啊、课程申请啊。。。不太有时间写博客,但是这都还好,时间嘛,像海绵里的水,越挤越少 TAT,最重要的问题是,我的 Git 无法访问 Github 了!

问题描述

因为参加了大名鼎鼎的 CS 61B 数据结构课程,作业要求要提交到 Github 上一个指定的仓库里。当时我还心想:Git 这点事对咱不是小菜一碟嘛,且不说搞这个博客网站要部署 GithubPage,在玩博客之前我就会把我 MATLAB 的代码保存到 Github 上了,git push 一下的事情嘛。

但是,按照以前的经验和 61B 课程网站上的指导,连接到远程仓库之后,我 git push origin main, 然后 Git 给我返回了一条错误信息:

1
fatal: unable to access 'https://github.com/OverClock-11/MATLAB.git/': Failed to connect to 127.0.0.1 port 7890 after 2023 ms: Couldn't connect to server

然后我又去试了试 hexo d

1
2
3
4
5
6
7
fatal: unable to access 'https://github.com/OverClock-11/OverClock-11.github.io.git/': Failed to connect to 127.0.0.1 port 7890 after 2017 ms: Couldn't connect to server
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (D:\Code_Programs\Blog\node_modules\hexo-util\lib\spawn.js:51:21)
at ChildProcess.emit (node:events:513:28)
at cp.emit (D:\Code_Programs\Blog\node_modules\cross-spawn\lib\enoent.js:34:29)
at ChildProcess._handle.onexit (node:internal/child_process:291:12)

毕竟是老司机,也不是第一次遇到这个问题了。Hexo 和 Git 都出问题了,但是因为 Hexo 也是靠 Git 部署的静态网页,所以病根在 Git。

解决问题

找到病根,就要开始排错了。因为这次设置考虑了课程网站上的指导,所以有可能是课程网站的指导步骤改了我 Git 的某种配置,导致 ssh 或者端口出问题了。Github 网站很流畅就登上去了, 说明网络没问题。按照网上的方法去看端口是不是被占用,没有;重新登陆GitHub,不行;重设 SSH 密钥,不行。

搞了几天后,我突然想起,咱已经来美国了啊,换了个网络环境之后就登不上去了,按照控制变量法的思想,问题应该出在中美网络环境的差异上,也就是——代理!

输入 git config --global -l

1
2
3
4
5
6
core.editor=vim --nofork
user.name=OverClock-11
user.email=over.clock1101@gmail.com
http.proxy=http://127.0.0.1:7890
init.defaultbranch=main
pull.rebase=false

果然代理还挂着呢,输入 git config --global --unset http.proxy (https 的话是 git config --global --unset https.proxy) 关掉代理,重新 git push

1
2
3
4
5
6
7
8
9
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 752 bytes | 752.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/OverClock-11/MATLAB.git
2b5a44d..14d6425 main -> main

出现了熟悉的字样,成功!

我真NB