V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
solider245
V2EX  ›  git

cit:让你从 github 的下载速度提高一万倍的小软件

  •  1
     
  •   solider245 · 2021-01-22 11:57:22 +08:00 · 9470 次点击
    这是一个创建于 1435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    序言

    github 上有很多好项目,但是国内用户连 github 却非常的慢.每次都要用插件或者其他工具来解决. 这次自己做一个小工具,输入 github 原地址后,就可以自动替换为代理地址,方便大家更快速的下载. 速度太慢可以看下gitee 仓库地址 github 仓库

    安装

    pip install cit
    # 代理安装路径
    pip install -i https://mirrors.cloud.tencent.com/pypi/simple cit
    

    主要功能与用法

    主要功能

    • change 将目标地址转换为加速后的地址
    • clone 常见的 git 加速,最快 10M/s,有时候慢一点
    • sub git 子模块加速,等同于 git submodule add
    • get 就是单纯的下载功能

    示例用法

    1. clone功能:等效于 git clone <url>
    cit clone <url>
    # 示例
    cit clone https://github.com/solider245/cit.git
    

    20210117184201_a0bb88c0f05074e9936d59be10ee1f7f.png

    如上图所示,输入一个数字,选择一个链接即可开始下载.默认使用 0.

    1. sub功能: 等效于git submodule add <url>
    cit sub <url>
    # 案例
    cit sub https://github.com/solider245/cit.git
    

    逻辑和 git clone 一样,这里就不放图了.

    1. get功能: 等效于 wget下载 get 功能会根据你的输入,智能判定下载 raw 文件或者 release 文件 使用示例:
    cit get <url>
    # 案例
    cit get https://github.com/cheat/cheat/archive/4.2.0.zip   
    
    • 下载 raw 文件 20210117195105_c1631ea82365332e2fa165f347a9bf96.png

    20210117194012_574bf5e906eb1b18b3b9615d7e8b295d.png

    下载安装包. 20210119184535_9e6b84fa7e79b955d6b2c8928a50ee1e.png

    如上图所示,因为是使用 https 下载,所以速度快点惊人,如果下载速度太慢可以选择别的地址.我目前测试下来,基本都能用.

    其他功能

    • [x ] 常用软件下载,类似 python,go 等下载
    • [x ] 常用系统加速,类似 ubuntu 或者 centos 等加速
    • [] 其他常用功能

    欢迎询问或者给我邮箱发邮件.

    53 条回复    2021-01-23 14:47:11 +08:00
    greatbody
        1
    greatbody  
       2021-01-22 12:02:18 +08:00
    外企表示不想理会
    276562578
        2
    276562578  
       2021-01-22 12:06:35 +08:00 via Android
    你这个很赞啊
    solider245
        3
    solider245  
    OP
       2021-01-22 12:11:29 +08:00
    @276562578 自己做的一个小工具.因为考虑到基本都是国人在用,所以就没写英文文档了.
    因为我是新手,所以很多东西都写的不是很完善.目前来看是基本使用没有大问题,所以才发出来的.
    把目前的几乎所有的代理全部都汇总了.
    然后,还有大家平常所说的 raw 以及 release 文件的下载,现在都可以自动转换了.
    superrichman
        4
    superrichman  
       2021-01-22 12:13:39 +08:00 via iPhone
    跟 proxychains 比有什么优势?
    YouLMAO
        5
    YouLMAO  
       2021-01-22 12:37:17 +08:00 via Android   ❤️ 16
    明天到 UC 新闻部报到
    solider245
        6
    solider245  
    OP
       2021-01-22 12:42:54 +08:00
    @superrichman 没什么优势,这个是给新手用的.简单来说,以前你要去 github 下载软件的时候需要转换链接.cit 帮你把目前主流的 9-10 个链接都置换好了,你只需要根据情况选择一个相对来说下载速度比较快的地址即可.
    solider245
        7
    solider245  
    OP
       2021-01-22 12:44:39 +08:00
    @YouLMAO 从 1K 提升到 10M,算下来差不多是有一万倍了吧?哈哈。没办法啊,标题你可以当成是目标用户筛选。喜欢这个标题党人才会用我的这款小软件。技术大牛或者说有点基础的人根本就用不到这款软件了。
    S4m
        8
    S4m  
       2021-01-22 13:45:18 +08:00   ❤️ 4
    个人用问题不大,公司用的话怎么保证镜像节点是可信的
    随便投个毒,基本全完了。
    Rwing
        9
    Rwing  
       2021-01-22 13:49:49 +08:00
    https://fastgit.org/
    用这个镜像吧,也有命令行可以用,这其中之一
    https://github.com/FastGitORG/FastGit.Tool.FGit
    stille
        10
    stille  
       2021-01-22 13:50:49 +08:00 via iPhone
    顺手推广下 ghproxy.com
    大家可以测试看看速度如何!
    learningman
        11
    learningman  
       2021-01-22 13:50:49 +08:00
    这玩意用 shell 加.bashrc 就能搞一个,还上 python,太笨重了
    northisland
        12
    northisland  
       2021-01-22 13:52:39 +08:00
    很实用,厉害了。
    solider245
        13
    solider245  
    OP
       2021-01-22 13:58:17 +08:00
    @S4m 这个就是给小白用户的.公司的话,基本都是自己搭建的吧?目前找到节点都是公开的,后续看看要不要加个用户自定义什么都
    solider245
        14
    solider245  
    OP
       2021-01-22 13:58:35 +08:00
    @stille 你们的节点我已经加上去了
    solider245
        15
    solider245  
    OP
       2021-01-22 13:59:14 +08:00
    @learningman 这不是自学 Python 吗,想着顺便做个小东西.shell 写却是最好,但是发现没有那么灵活.
    solider245
        16
    solider245  
    OP
       2021-01-22 13:59:39 +08:00
    @Rwing fastgit 节点有.常用的大概有 10 个节点
    muzuiget
        17
    muzuiget  
       2021-01-22 14:00:48 +08:00
    标题党只会适得其反。
    GM
        18
    GM  
       2021-01-22 14:29:47 +08:00
    安装后找不到 cit 命令?
    solider245
        19
    solider245  
    OP
       2021-01-22 14:31:43 +08:00
    @GM 能看下报错吗?我这里显示没问题
    solider245
        20
    solider245  
    OP
       2021-01-22 14:34:57 +08:00
    @GM 可能是源同步的关系,我这里用的是清华和腾讯的源测试,如果你的 Pip 用的是阿里云的,可能要慢一点.因为之前我有一个失误,把可执行文件的内容给删掉了,后面 才加上去了.只有最新的版本没问题.阿里云的源同步要慢一些
    solider245
        21
    solider245  
    OP
       2021-01-22 14:37:39 +08:00
    @GM ![20210122143710_6fed7ab811c46204871a9a4cc7b839a2.png]( https://images-1255533533.cos.ap-shanghai.myqcloud.com/20210122143710_6fed7ab811c46204871a9a4cc7b839a2.png)
    上面这个是我最新的截图
    GM
        22
    GM  
       2021-01-22 14:45:17 +08:00
    @solider245
    -bash: cit: command not found

    用这个命令安装的:

    pip install -i https://mirrors.cloud.tencent.com/pypi/simple cit
    jswh
        23
    jswh  
       2021-01-22 14:47:16 +08:00
    命令行工具,为什么不用 export https_proxy='' 。。。。。。
    kosmgco
        24
    kosmgco  
       2021-01-22 14:49:53 +08:00
    看了下代码,是用中文编程吗

    https://sm.ms/image/QHKJzUvFhPdaE6A
    ttimasdf
        25
    ttimasdf  
       2021-01-22 14:52:15 +08:00   ❤️ 4
    看着不错,有个功能建议,供应链投毒的危害实在不容小觑。

    因为你的项目在做一个镜像聚合,可以做一个非常有意义的事情——对比各个镜像下载资源的一致性,判断有没有镜像在做内鬼。可以加一个子命令,比如就叫 verify,

    cit verify https://github.com/cheat/cheat/archive/4.2.0.zip

    两种实现方法:

    1. 从多个镜像 URL (或干脆从 github )同时下载文件,然后计算对比哈希值。这个是最慢的,但最准确的方法。

    2. 稍微快一点,但验证效果稍微差一点的方法,就是从 Github 源头拉取文件大小,除了 repo archive ( codeload.github.com 的链接),剩下的场景中,给下载的链接发个 HEAD 请求,Github 都是会返回文件长度的( Content-Length 这个 http header )。所以从文件大小简要判断一下,也可以作为一个验证方式。

    假定所有镜像的数据不可信,这个前提还是非常有必要的。
    ttimasdf
        26
    ttimasdf  
       2021-01-22 14:53:09 +08:00
    @kosmgco 国货之光 :doge
    j0hnj
        27
    j0hnj  
       2021-01-22 14:59:23 +08:00   ❤️ 1
    这代码……看着想打人
    misaka19000
        28
    misaka19000  
       2021-01-22 15:05:36 +08:00
    我从 GitHub 下载现在是 10m/s 用了你这个能提升到 100g/s ?太能装了吧?
    K120
        29
    K120  
       2021-01-22 16:02:49 +08:00
    https://github.com/xjh22222228/git-manual#%E5%8A%A0%E9%80%9F 镜像加速,不需要安装任何软件。
    holycrazy
        30
    holycrazy  
       2021-01-22 17:03:53 +08:00
    mk 一下
    wowo243
        31
    wowo243  
       2021-01-22 17:25:17 +08:00
    点进源码,看见中文变量名,告辞
    sky96111
        32
    sky96111  
       2021-01-22 17:25:57 +08:00
    https://github.com/hunshcn/gh-proxy
    ***大量使用请自行部署,以上域名仅为演示使用。***
    paoqi2048
        33
    paoqi2048  
       2021-01-22 17:37:05 +08:00
    @K120 不错,确实快了很多😁
    solider245
        34
    solider245  
    OP
       2021-01-22 17:41:24 +08:00
    @GM 奇怪了,我这边测试都没有问题.我再看看,应该是源同步的关系,有一个版本操作失误删掉了那行代码.
    solider245
        35
    solider245  
    OP
       2021-01-22 17:41:52 +08:00
    @wowo243 我新手,理解一下.
    solider245
        36
    solider245  
    OP
       2021-01-22 17:42:36 +08:00
    @kosmgco 是的,有些变量中文名似乎效果要比英文名直观多了.反正这软件也不给外国人看
    solider245
        37
    solider245  
    OP
       2021-01-22 17:44:02 +08:00
    @misaka19000 你能达到 10m/s 就不是我的用户了呀.我的目标用户说类似我这种小白用户,下载还不到 10K 的新手用户。
    其实现在很多编程新手入门,但是似乎大家都不怎么关注
    sym134
        38
    sym134  
       2021-01-22 17:47:19 +08:00
    KaynW
        39
    KaynW  
       2021-01-22 17:58:30 +08:00
    @sym134 你这点进去我以为是澳门皇家赌场...
    lovecy
        40
    lovecy  
       2021-01-22 18:20:09 +08:00
    @wowo243 中文变量名也没啥,别做天龙人
    LearningToCode
        41
    LearningToCode  
       2021-01-22 18:27:40 +08:00
    我装了几个 chrome 插件和油猴脚本,加上 terminal proxy,下载速度基本满速。
    https://i.loli.net/2021/01/22/m84pXe9P6JIKidr.jpg
    xchaoinfo
        42
    xchaoinfo  
       2021-01-22 19:10:25 +08:00 via Android
    挺好的,如果觉得代码写的不好,或者功能不完善,直接 pull request
    或者自己实现一个呗。
    fiveelementgid
        43
    fiveelementgid  
       2021-01-22 19:20:54 +08:00 via Android
    暂时没有需求,先点赞一个( •﹏•)
    lfzyx
        44
    lfzyx  
       2021-01-22 19:55:19 +08:00
    国内的开发者还是好好用 Gitee 吧,哈哈哈
    3wdddd
        45
    3wdddd  
       2021-01-22 21:06:07 +08:00 via Android
    npm 有一个叫 switch proxy 的包
    sp all http://127.0.0.1:7890
    glouhao
        46
    glouhao  
       2021-01-22 22:00:35 +08:00
    一万倍超过我网线极限了
    SimleCp
        47
    SimleCp  
       2021-01-23 10:24:39 +08:00
    shadowsocks+终端命令.很舒服
    ojbkojbk
        48
    ojbkojbk  
       2021-01-23 10:49:28 +08:00
    试一下 gitclone.com
    目测比楼上的下载都要方便
    deplives
        49
    deplives  
       2021-01-23 10:55:57 +08:00
    看了下代码 告辞
    noparking188
        50
    noparking188  
       2021-01-23 11:21:29 +08:00
    被标题吸引进来,理解楼主,但是这里大多搞技术的,也许发到知乎等社区更能吸引到用户
    楼下回复知道了很多加速工具和技巧 👍
    我图省事都是挂代理
    SimleCp
        51
    SimleCp  
       2021-01-23 11:53:44 +08:00
    @ojbkojbk shadowsocks 本身就需要用, 所以是必备的.终端命令配置一次, 再到终端里面配置一下打开终端自动开启代理的命令.用的时候不需要做什么, 命令也不需要切换成 cit xxx.无感使用.除了不需要代理的时候需要自己主动执行一下关闭代理, 没感觉比我这个方便到哪.
    luwill
        52
    luwill  
       2021-01-23 12:22:01 +08:00
    一直想做 p2p 加速 github 下载。后来买了 vpn,再也没想过这些。
    liangch
        53
    liangch  
       2021-01-23 14:47:11 +08:00
    都是从新手学起的。
    但中文作为函数名,这个是乱来。告辞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.