Github终极解决方案

本文分析了之前的一系列的解决方案,虽然题目为终极解决方案,但是有针对性的配置更加有效率。对于ssh访问github.com而言,由于是直接访问github.com所以它的内容是最新的,且没有任何问题,而镜像有可能不完整。同时,对于yay, paru而言其axel的多线程下载功能也不是仅仅实现访问github.com所能比的。对于masontreesitter按本节方法更好一些,但是之前的配置也是可以接受的。对于那些调用git但是还没有找到解决方案的程序,全局化取代github.com将是一个有效的方法。

我平时使用ArchLinux作为办公的主力,平时用的最多的就是vimnvim, 为了更好的使用他们工作配置了若干插件,由于这些插件都发布于Github,且像PlugPacker这样的插件管理器都从Github上安装和更新插件。但是Github的访问并不稳定,这导致了升级插件和安装的时候出现了问题。为了解决这一问题,我配置了ssh的方法,具体参考

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

这个方法有效的解决了插件的安装和升级问题,但是配置文件都需要添加上git@github.com, 但是后面我发现偶尔这个方法也有卡顿的时候。我们还面临另一个问题,就是使用yayparu安装软件时无法从Github下载软件的问题,这个问题的解决参考我的另一篇文章

解决ArchLinux使用yay或paru安装软件时从Github下载慢或不可下载的问题

这个解决问题的思路很好,使用多线程工具axel来加速下载,但是它的配置比较麻烦,而且还需要安装一个自己的脚本,对于一个初学Linux的人来说难度太大,对于一个使用Linux作为办公主力的人来讲每次配置都很麻烦,当然配置一次基本上不用再花太多时间了。同时,脚本的作用也是将https://github.com替换成了镜像网站https://hub.yzuu.cf, 当时是解决了问题,但是有一天如查镜像网站不能用了,那必须再修改脚本,这个工作量也是比较大的,显然也不是最佳方案。

第三个遇到的问题是masontreesitter来管理lsp和语法高亮的时候,它们自行下载软件也是通过https://github.com, 这导致启动neovim后不能快速安装语言高亮模块等,而解决这个问题的思路我也是找到masontreesitter的配置文件,然后修改https://github.comhttps://hub.yzuu.cf, 这个上一段描述的麻烦一样,如果有一天镜像站失效,那也必须去修改对应的文件。

综上所述,配置vimnvim的插件,需追加git@github.com, 对于yayparumasontreesitter需要时关注镜像网站是否可能。虽然整体上解决了问题,但是仍然不是最优的。一直以来我都想将执行git clone https://github.com/XXX 时中的github.com自动取代为可用的镜像网站,这样子nvimvim的配置文件可以与原作者推荐的一致,且yay, paru , masontreesitter以及以后其他软件可能用到github时统统都可以解决,今天 终于解决了这个问题,那就是修改全局的git配置文件~/.gitconfig, 这也是写这篇文章的主要目的,记录下这个终极解决方案!!

~/.gitconfig
1
2
3
4
5
6
7
8
9
[user]
email = fengzhenhua@outlook.com
name = fengzhenhua
; [url "https://hub.yzuu.cf/"]
; [url "https://hub.njuu.cf/"]
; [url "https://hub.nuaa.cf/"]
; [url "https://kkgithub.com/"]
[url "https://gitclone.com/github.com/"]
insteadOf = https://github.com/

注意,在配置文件中使用分号;来注释掉了可用的镜像,如果一个镜像挂了可以取消注释启用另一个就好。这主要受到了文章 各种各样的镜像加速 的启发。同时文章也指出了gitclone.com的特殊性,按官方的说法下载的人越多速度也越快,这点经过测试确实gitclone.com是最快的。