使用Git下载Github资源的有效方法

2023年10月11日星期三多云北京市北京师范大学, 在升级了办公室的电脑上的ArchLinux后,发现又有一大批gnome插件失效了! 虽然Gnome3很好用,但是每次大版本升级都会导致好多插件失效,这是唯一一个体验不好的地方,如果正忙着处理一些工作,但是电脑的插件又出了问题,这显然很让人恼火!如果不升级,在以后的使用中可能有的软件会有依懒问题,所以还是保持软件处于最新的状态才对,经过考虑暂时在办公室的电脑上安装了cinnamon 桌面环境,同时原来的Mac Big Sur 主题在其上面也可以很好的工作,由于cinnamon 不依懒插件,可以单独配置,同时基于Gnome3 代码开发而来,所以有必要一试,尝试的结果也是很满意。

在安装好新的桌面环境之后,面对的首要问题就是测试一下我的neovimnvim 是否还可以正常升级插件,而之前的时候按照网上的教程测试成功将https://github.com 修改成git@github.com之后能够正常升级,由于时间长了忘记了当时的设置,而新电脑再使用这个方法即不能升级插件也不能用这个方法下载github 上的其他资源,于是今天下午几乎一下午都在研究这个事情。好在最后得到了答案。

由于网络的原因,我们访问https://github.com 并不稳定,且多数情况下是不能使用的。通过torbrowser 诚然可以访问该网站,但是速度太慢,但是我们仔细研究Github 发现这样一个规律,如果你不登录自己的Github账号,那即使你找到了Github上的资源,也只有两个下载方案,如下图

未登录Github帐号

这两个可以使用的下载方案是:HTTPSGithub CLi , 第一个方案肯定是行不通的,第二个方案对于需要自动更新的neovim插件来讲也是不可行的。但是当我们登录自己的Github帐号后,却可以看到多了一个SSH 下载方式,如下图

登录Github帐号

这里需要注意了,之前配置的时候使用邮箱和密码配置了Git登录的方式,但是好像现在不好用了,这可能与Github的规则有关也可能与网络有关。而我自己在配置SSH的时候,起的名字却不是git@github.com, 这样很多仓库就无法直接确认我是一名登录了Github的用户, 于是解决方法是:

~/.ssh/config 中配置一个名字为git@github.com的名字,其SSH公钥是自己在Github上帐户部署好的公钥,也可以是单独的一个帐户配置好的公钥,我的config文件内容为

~/.ssh/config
1
2
3
4
5
6
7
8
9
10
Host github_fengzhenhua-vip
User git
HostName github.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_1
Host github.com
User git
HostName github.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_1

比如我们配置Neovim插件 vimtex,如下填写文件

~/.config/nvim/lua/plg/plugins.lua
1
use {'git@github.com:lervag/vimtex'}

当使用PackerSync同步时,安装或更新插件都会使用默认的下载链接 git@github.com 下载插件,同时也会使用名字 git@github.com 来认证,而我们又是 Github 的用户,且配置了这个名字的 SSH 公钥,于是很自然的就认证了 Github 用户的身份,于是可以快速的更新插件了。

我们还有第二种方案,就是使用国内镜像,比如说将https://github.com 换成 https://hub.yzuu.cf, 同样可以完成插件的更新,但是问题在于国内镜像有可能会被封,遇到这种情况就需要再去寻找可用的镜像,这是一个麻烦的问题。同时镜像毕竟不能保证与原始仓库的同步,这就导致能更新,但不一定是最新的。所以这个有效的方法就是使用本文介绍的配置git@github.com命令的SSH,获得SSH链接后,同步更新或下载Github仓库中的文件。