目录

加速git clone/push

作为一名 CS 专业的学生,我们大部分时候都在和代码打交道,那么就不得不知道 gitGitHub了,git 最基本的命令就是使用 git clone 从代码托管平台下载代码以及使用 git push 将本地更改推送到远程仓库,然而由于众所周知的原因,世界上最大的代码托管平台 GitHub 在国内访问的速度实在堪忧,这里提供一些网络加速的方法,分别对应有代理软件无代理软件的情况。

为 git 使用代理端口

如果你已经拥有了一些代理软件,那么直接为 git 设置代理是最好的提速方法,这里以 ss 为例,假设本地代理地址为 127.0.0.1:1080,那么你可以使用以下命令为 git 设置代理:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# http options
$ git config --global http.proxy "socks5h://127.0.0.1:1080"
# unknown section name
$ git config --global https.proxy "socks5h://127.0.0.1:1080"

# 查看更改是否成功
$ git config --global --get http.proxy
$ git config --global --get https.proxys

# 取消代理
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy

这一方法可以加速克隆使用 http/https 协议进行传输的仓库,使用 ssh 协议的需要进行其他设置,这里不加以阐述。

修改 host 文件

git clonegit push 时,实际上并不是直接向 github.com 发送请求,而是对 github.global.ssl.fastly.net 发送请求与通信,尽管Fastly 公司在中国有着众多的 CDN 节点,但由于DNS污染等原因,访问依然十分缓慢,我们可以通过修改 host 文件直接将域名和主机一一映射,跳过DNS查询的步骤,加速对该域名的访问。

1
2
3
4
5
6
7
8
# windows下修改C:\Windows\System32\drivers\etc\hosts
# Linux/Mac下修改/etc/hosts
# 在最后加上

151.101.77.194  github.global.ssl.fastly.net
13.229.188.59   github.com
185.199.109.153 assets-cdn.github.com
151.101.76.249  global-ssl.fastly.net

然后刷新DNS缓存。

1
2
3
4
# windows
$ ipconfig /flushdns
# linux/mac
$ sudo /etc/init.d/network-manager restart

如果网络没问题的话,修改后的速度一般都能达到 MB/s 的级别。

浅克隆

git clone 默认是将整个项目完完整整地下载到本地,实际我们大部分时候都只是想要最新的版本,完全无需下载整个项目,这时候我们可以使用浅克隆:

1
$ git clone --depth=1 https://github.com/username/repository.git