使用 HTTPS 协议管理 Github 仓库
本文最后更新于 2025年5月15日 晚上
前言
在管理自己在 Github 上的项目时,一般是在本地配置和 Github 上配置好 SSH 协议,再通过 Git 命令去管理 Github 的项目,而且使用 SSH 协议去连接 Github 时不容易被神秘的墙阻挡。
但是,总有部分地区下使用 SSH 协议连接 Github 时会出现阻断,也就是被墙了。我试过配置 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 环境变量,发现 SSH 在通信时不会理会这些代理变量去使用代理,我又尝试了使用 TUN 模式让 SSH 强行使用代理,但…SSH 竟然也不会使用代理!
上 Google 查了很多教程,发现 SSH 是不会使用这些代理的,需要额外进行配置才能使用,在~/.ssh/config
中配置ProxyCommand
。但是 ProxyCommand 需要依赖其他的软件来运行,而且在 Windows 中竟然要额外装一个软件才能使用,这什么玩意啊,配置代理要这么复杂,这不行…
尝试过《修复DNS污染导致无法通过ssh连接github的问题 - 团子的血域城堡》这里面的方法,似乎并没有起到什么作用。
SSH 协议只能到此为止了嘛,看起来只能转向使用 HTTPS 协议去管理 Github 项目了,这样就能使用代理,但…
用 HTTPS 协议去管理项目要输入用户名和密钥啊,这也不太行啊…
在绝望中翻着 Google 上的教程,煎熬…啊,在 Github 中的文档里终于找到了解决办法!
安装 Github CLI
在 Releases · cli/cli 中找到 windows amd64 installer 的版本,下载并安装。
GIthub CLI 安装非常简单的呢,无脑点击下一步就行了。
配置终端代理
因为要借助 HTTPS 协议和代理解决这个问题,所以配置终端代理也是很重要的呢,方法直接看这篇文章吧:《在终端中快速设置代理 - licyk的小窝》
配置完成后在终端里可以使用一条命令快速设置代理。
- PowerShell
1 |
|
- MSYS2 / Git Bash / Linux Shell / Unix Shell
1 |
|
配置 Github CLI
配置好终端代理后,这样就可以愉快的连接上 Github,使用 Github CLI 也不会有什么网络错误的问题了。
在终端里输入下面的命令进入 Github CLI 的登陆界面。
1 |
|
运行后 Github CLI 会提示配置一些选项,使用方向键移动光标,Enter 键进行选择吧。
第一个选项是Where do you use GitHub? (你在哪使用 Github?)
。
选择Github.com
就好了。
第二个选项是What is your preferred protocol for Git operations on this host? (你在这台电脑上进行 Git 操作时使用什么协议?)
。
前面说过要使用 HTTPS 协议来解决这个问题,所以选择HTTPS
吧。
第三个选项是Authenticate Git with your GitHub credentials? (使用 Github 凭证验证 Git?)
。
这里就输入y
吧。
最后一个选项是How would you like to authenticate GitHub CLI? (你怎么样去登陆 Github CLI?)
。
这里就选择Login with a web browser
吧,方便。
回车后会显示First copy your one-time code (首先复制你的验证码)
,后面的代码就是你的验证码。
下面还提示Press Enter to open github.com in your browser... (请按下回车键在浏览器中打开 github.com ...)
,回车后就可以打开浏览器进入验证页面了。
如果没打开就手动在浏览器中打开https://github.com/login/device
这个地址。
在 Github CLI 的验证页面中选择要使用的 Github 账号,点击账号右边的Continue (继续)
来选择账号。
下一个页面就把在控制台那边的验证码输入进去吧。
最后点击Authorize github
确认在 Github CLI 登陆 Github 账号。
看到这个页面就说明登陆 Github CLI 成功啦。
在 Github CLI 的界面也可以看到登陆成功的提示了。
使用 HTTPS 协议管理项目
打开一个终端,先使用代理配置命令配置一下代理,再试着使用 HTTPS 协议的地址下载项目。
现在使用 HTTPS 协议的地址来管理 Github 的仓库不再有任何验证提示了呢~