问题说明

昨天偶然更新完网站的todoList,在寝室的代码做完LeetCode的每日一题后例行推代码和部署网站,然后发现很好玩的一个事情就是,服务器上的代码推上去了但是github pages的代码没有推上去。具体提现就是gitpush的时候没有报错,但是就是等待了很长很长的时间。
一开始以为是我代理的原因,毕竟github抽风的时候简直不要太多,所以挂上了心心爱爱的梯子,然而事情变得更奇怪了,那就是我竟然在push不了博客的代码后,正常的ping也根本没有回显了!
过了很长时间,终端报了这样一个错误:
fatal: unable to access 'https://github.com/ANh0r/': Could not resolve host: github.com

在此之前,我曾经因为是代理的原因做过

1
2
3
4
5
6
7
65  proxy
3560 git config --global http.proxy
3562 git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
3565 git config --global http.proxy
3566 git config --global --unset http.proxy
3570 git config --global --unset http.proxy
3571 git config --global --unset https.proxy

顺序就不表了,就是先加代理卸载代理各种设置,然后问题依旧。

毕竟之前在寝室push的时候都是正常的,怎么就今天不行呢?
结合之前ping的时候没有回显,我突然意识到,这是个DNS的问题….

问题解决


最下边一行注释掉的,就是之前缺少的新加坡的github服务器的地址
注释掉后,发现:

正是我们之前遇到过的情况。

机智如我,我一眼就看出他不是人我一眼就看出这必须整一个DNS服务器过去让终端知道往哪走了,毕竟运营商抽风了

我们找到了亲爱的室友ping了一下github.com,发现国内不用代理用的是新加坡的服务器地址:
13.229.188.59,将
13.229.188.59 github.com加入到 /etc/hosts的最后一行,然后保存

注意,这里需要权限,可以chmod也可以直接root修改
如果不放心,可以加上之前的:

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

这两行,ping一下github.com,发现有回显就是正常的!
Time out其实是正常的情况

然后重新push一下你的代码,是不是就正常啦?