问题
最近在用git提交代码到github时失败了,出现了如下图所示的错误,最后网上搜索许多资料找到了解决方法,特记录于此。
错误日志:ssh: Could not resolve hostname github.com: Name or service not known.fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
日志提示不能正常连接github.com,然后我就打开终端(cmd 或者 git bash)输入 ping github.com,果然ping不通,不显示ip等信息。
git bash 下输入 ssh -T [email protected] 可以检测github是否连接成功
成功则提示:
Hi xxx You’ve successfully authenticated, but GitHub does not provide shell access 。
我的提示的是Host key verification failed,种种迹象都表明我的电脑确实没连接上github。
解决方法
原因有可能是本地DNS无法解析导致的,我的就是这个原因,具体步骤如下
1. 可能是你电脑 C:\Windows\System32\drivers\etc 路径下的hosts文件损坏了,可以去另一台可以ping通的电脑复制一份过来。
2. 进入终端cmd
输入:ipconfig /flushdns 释放DNS缓存。
输入:netsh winsock reset 重置Winsock目录。
提示必须重启计算机才能完成重置,然后自己手动重启电脑。
3. 此时如果是DNS无法解析造成的原因则可以重新测试
一下,进入cmd,ping一个百度。
如果出现如上图所示0%丢失,则说明成功了,继续ping github.com
可见已经ping通了,再打开git bash 输入 ssh -T [email protected] 验证git是否已经连接上github
如果你的电脑出现上图字样,那么恭喜你,你遇到的问题和我一样,并且已经解决了,git已经重新连接上github,你可以重新做一些git操作了,这时候我再次提交代码,一切正常。
结语
出现这个问题也是自己对git、网络方面的知识不太熟造成的,浪费了很多时间,最后找了很多资料才解决,方法记录下来,方便自己和大家查阅。