详细报错信息:
正在推送 master
将分支推送到远程存储库时遇到错误: Git failed with a fatal error.
Git failed with a fatal error.
unable to access 'https://github.com/sfssa/MT4Library.git/': Recv failure: Connection was reset
解决办法:
Windows+R输入CMD打开命令行:
在命令行中输入:ping www.github.com,得到下图所示:
或者输入命令:nslookup github.com,得到下图:
上述两种方法得到的IP地址就是服务器地址,也就是上图中的:20.205.243.166
找到Windows中hosts配置文件,位于C:\Windows\System32\drivers\etc这个路径下,如果记事本无法打开那么就先将hosts文件复制一份到桌面,然后将其后缀改成txt,在里面加上下面的IP和域名后将后缀名删除,将hosts.txt还原成hosts,在覆盖原来的hosts文件;
如果有notepad++那么直接以管理员身份打开后,将下面这句话加入到hosts文件中:
20.205.243.166 github.com
解释说明:
unable to access 'https://github.com/sfssa/MT4Library.git/': Recv failure: Connection was reset造成这个报错的原因主要是网络连接问题,GitHub的服务器在外国,或者是防火墙代理、DNS解析的问题。
将"20.205.243.166 github.com"添加到hosts文件中是一种手动指定域名与IP地址的映射关系的方法。这样做的目的是绕过DNS解析过程,直接将github.com这个域名映射到指定的IP地址,即20.205.243.166。这样,当你在浏览器或其他网络应用中访问github.com时,系统将不再向DNS服务器查询域名的IP地址,而是直接使用你在hosts文件中指定的IP地址。
通过手动设置,可以
- 提高访问速度:如果你的DNS服务器响应缓慢,手动指定IP地址可以减少DNS解析时间,从而加快访问速度。
- 解决DNS解析问题:有时DNS解析可能出现问题,可能是由于DNS服务器故障或其他网络问题。手动指定IP地址可以绕过这些问题,让你能够继续访问网站。
- 屏蔽网站:在某些情况下,你可能希望屏蔽某个网站,让它无法在你的电脑上访问。你可以将该网站的域名映射到一个不存在的IP地址,从而实现屏蔽效果。
但是也存在问题,如果你按照上述修改后,未来有一天发现突然有出现了问题,记得检查下是不是服务器的地址发生了改变,这个时候就需要按照上述的方法重新搜索GitHub的服务器地址并设置。
补充
上面的方法当我第二天再次尝试的时候就失效了,并且查了IP并没有改变。
后来发现可能是代理问题,先在git的UI界面执行下面两条命令:
git config --global --unset http.proxy
git config --global --unset https.proxy
然后打开命令行清理DNS缓存:
ipconfig/flushdns
再次在vs2019上先提交,然后推送,显示成功!
版权归原作者 爱躺平的咸鱼 所有, 如有侵权,请联系我们删除。