[GitHub] Failed connect to github.com:443; Connection timed out 的三种解决方案

对于 GitHub 连接超时的问题, 网上常见的解决方案有两个, 一个是修改 DNS, 另一个是将 GitHub 项目导入 Gitee, 然后通过 Gitee 管理代码. 第一个方案在某些时期或者某些场景中也许有用, 但在当前这个时间点不能解决问题, 第二种方案是可行的, 不过设置要复杂一点, Git 的使用习惯也要做一些改变, 除此之外还有一个关键问题, 从官网的说明来看, 项目从 Gitee 到 GitHub 的同步好像不能自动完成, 也就是说代码提交到 Gitee 之后, 还需要去 Gitee 上面手动点击一下同步按钮, 使用体验不太好.

除了这两种解决方案, 还有一个更好的方案, 就是使用 ssh 协议来管理项目. 这个方案除了第一次使用时有点麻烦外, 后续使用的体验很好, 不仅不会经常出现连接超时的情况, 而且不需要额外的设置就可以免密 pull/push 代码
[GitHub] Failed connect to github.com:443; Connection timed out 的三种解决方案_第1张图片
如上图所示, 在 clone 项目时可以选择要使用的协议, https 或者 ssh, 为了方便一般都是直接使用 https, 而代价就是容易遇到 GitHub 连接超时的情况.

使用 ssh 协议的问题在于需要设置 ssh 公钥, 公钥用于将 GitHub 账号与要 clone 项目的机器绑定, 每一台想要通过 ssh 协议 clone 项目的机器都要把自己的 ssh 公钥与项目所在的账号绑定, 具体操作参考官网的这篇文章 使用 SSH 连接到 GitHub

设置好公钥之后, 如果是第一次 clone 项目, 在 clone 时选择上图的 ssh 就行了, 如果本地已经有项目, 可以通过修改项目中的配置文件来实现同样的效果, 修改步骤如下

  1. 进入项目的根目录
  2. 执行 cd .git
  3. 打开 .git 目录中的 config 文件, 将其中的 url 参数改写为 ssh 协议的格式
    [GitHub] Failed connect to github.com:443; Connection timed out 的三种解决方案_第2张图片

你可能感兴趣的:(GitHub,github)