fastgh / fgit

加速100~3000倍的github.com
GNU General Public License v3.0
299 stars 30 forks source link
fast git github proxy

fgit

image

fgit是一个可以无缝替换git命令行的工具,加速对github.com的git clone/pull/push/update/fetch;fgit实时访问github.com,不是缓存。

特点:

安装:

下载页面:https://github.com/fastgh/fgit/releases。 也可以自己编译安装(方法见后面小节)

使用:

工作原理:

git clone为什么慢成每秒几个KB?DNS污染和‘墙’等流传的原因都已经过时了,现在的主要原因是由于我们的访问通常走的是糟糕的国际线路。所以,解决起来其实也很简单直接,fgit使用的镜像服务器和HTTP代理服务器需要接入优化线路。

知乎上这篇文章做了比较好的解释:git clone一个github上的仓库,太慢,经常连接失败,但是github官网流畅访问,为什么?

但是,毕竟那样设置起来比较麻烦,容易出错,而且,如果走的是github.com.cnpmjs.org等公共镜像,只能clone,不能访问私有库,也不能push。fgit把这些包装了起来,是这么做的:

几种方案的对比:

fgit 公共镜像(https://github.com.cnpmjs.org等 自建代理或VPN 导入国内GIT(码云等) 缓存(https://gitclone.com) 代下载(http://gitd.cc)
浏览器访问 [x] [x] [x]
git命令行 [x] [x] [x] [x] [x]
无需手工设置 [x] [x]
支持push [x] [x]
支持私有库 [x] [x]
免费 [x] [x] [x] [x] [x]
实时(非缓存) [x] [x] [x]
不容易被误 [x] [x] [x]
动态更新服务器 [x]

题外话:

准备发布1.0版时,发现有一个GITHUB项目做了差不多的事情:https://github.com/FastGitOrg,看了一下细节,FastGitOrg的缺点是:

限制:

  1. 不支持SSH协议

  2. 不支持sub module

  3. 代理模式下,执行clone时,会临时修改全局的.gitconfig文件(位于用户主目录下);非clone时,会临时修改当前目录的.git/config文件。一般情况下,fgit会在执行结束后自动恢复原先的设置,即使崩溃退出时也能做到恢复,但不排除意外和有bug的情况,这时需手动修改.gitconfig或.git/config。

编译:

TODO:

开源许可证

GPL

问题反馈和交流:

因为账号翻墙麻烦,所以几乎不看GITHUB Issues,所以有问题请加微信号:fastgithub

image