最稳定的下载GitHub代码的方式

今天介绍一下如何更加稳定的将GitHub的仓库下载到本地。

GitHub是世界上最大的存储开源软件代码的平台之一,几乎每一个学过编程的人都听过或用过GitHub,其中最常见的操作就是将GitHub的代码下载到本地,然后编译安装。

GitHub以仓库(repository)为单位来对软件进行管理,每个用户可以有多个仓库,每个仓库可以被不同的人所共享,例如下图中是李恒大牛的最常用的几个仓库:
在这里插入图片描述

从GitHub中下载仓库主要有三种方式,如下:

  1. 在浏览器中点击Download ZIP按钮下载仓库;
  2. 在命令行中通过wget下载特定版本的文件;
  3. 在命令行中将仓库clone(克隆)到本地;

第一种通过Download ZIP按钮下载的仓库是当前仓库的一个snapshot(快照),不包括该仓库的历史版本,也无法进行版本控制;

第二种wget方式可以下载特定版本的文件,例如打开李恒大牛的minimap2的releases页面(https://github.com/lh3/minimap2/releases):

在这里插入图片描述

往下滑到“Assets”处,可以看到当前的源代码压缩包:

在这里插入图片描述

其中Source code开头的文件是GitHub自动生成的压缩包,通常会缺少一些信息,请不要使用Source code开头的文件,而前面两个是作者提供的完整版的压缩包,可以放心下载。

例如可以通过wget命令来下载文件minimap2-2.28_x64-linux.tar.bz2:wget https://github.com/lh3/minimap2/releases/download/v2.28/minimap2-2.28_x64-linux.tar.bz2。不过由于国内对GitHub存在限制,这种方式有时可能会行不通,会一直处于等待中。

最后一种方式是在命令行中通过clone方式的下载仓库,这种方式会将仓库的所有数据下载到本地,包括所有文件和目录的历史版本,即克隆一个一模一样的仓库。

从GitHub中clone仓库的方式有三种,即HTTPSSSHGitHub CLI

例如下载minimap2软件(https://github.com/lh3/minimap2)时可以发现这3种下载方式:

在这里插入图片描述

前面两种都需要通过git clone URL的方式进行下载,最后一种需要安装GitHub的命令行程序(CLI)。本文主要关注前两种方式,通过GitHub CLI下载仓库的方式请参考链接 https://docs.github.com/en/github-cli/github-cli/about-github-cli

通过HTTPSSSH这两种方式下载仓库的命令是git clone URL ,其中URL是https开头或git开头的链接:

  1. 如果是通过HTTPS下载,那么可以运行 git clone https://github.com/lh3/minimap2.git
  2. 如果是通过SSH下载,那么可以运行git clone git@github.com:lh3/minimap2.git

通过HTTPS方式下载仓库不需要进行任何配置,适用于很多情况,但是存在一个缺点,就是这种方式不太稳定,尤其是国内对GitHub等网站存在限制,有时下载一个仓库会一直等待,最终因为超时而退出,导致下载失败。

而通过SSH方式下载仓库只进行一个简单的配置(即配置SSH keys),就可以获取非常稳定的下载速度,基本不会中断。

下面介绍一下如何生成SSH keys并添加到自己的GitHub账户上。

第一步:生成SSH keys

运行如下命令,进入到.ssh目录下然后通过ssh-keygen命令来生成SSH keys:

cd ~/.ssh/
ssh-keygen

输入该命令以后会出现一系列的提示,然后回车三次,如下图所示:

在这里插入图片描述

上述命令运行结束后即可在当前目录下面生成两个文件,分别是id_rsaid_rsa.pub ,前面那个文件是私人的key,不可以分享给任何人,而后面那个文件是公开的key,可以添加到GitHub上面。

第二步:将SSH keys添加到GitHub账户上

这一步需要有GitHub账户,当创建好账户以后登录GitHub,然后打开一个GitHub仓库(例如李恒大牛的minimap2软件:https://github.com/lh3/minimap2),然后点开右上角自己的头像:

在这里插入图片描述

接下来点开Settings来打开设置页面:

在这里插入图片描述

然后点击左边的SSH and GPG keys链接,接下来点击New SSH key按钮来新建一个key:

在这里插入图片描述

然后将前面生成的id_rsa.pub文件中的内容写入到下面的框中,最后点击Add SSH key按钮即可保存:

在这里插入图片描述

到此就已经成功将SSH key添加到GitHub账户中了。

接下来试一下通过SSH方式下载李恒大牛的minimap2仓库(git clone git@github.com:lh3/minimap2.git),下载过程如下:

在这里插入图片描述

可以发现,通过SSH方式下载GitHub仓库的速度很快,并且非常稳定。

配置SSH keys的好处有很多,除了可以通过SSH方式稳定下载GitHub仓库以外,还可以上传代码到自己的GitHub仓库,可以对仓库进行各种操作,非常方便。

本文仅介绍下载仓库的方式,后续会发布如何上传代码到自己的GitHub仓库并进行操作的具体过程。

参考链接:

本文首发于微信公众号:最稳定的下载 GitHub 仓库的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值