github下载太慢怎么办

一、git shallow clone

git clone 默认会下载项目的完整历史版本,如果你只关心最新版的代码,而不关心之前的历史信息,可以使用 git 的浅复制功能:

1

$ git clone --depth=1 https://github.com/bcit-ci/CodeIgniter.git

--depth=1 表示只下载最近一次的版本,使用浅复制可以大大减少下载的数据量,例如,CodeIgniter 项目完整下载有近 100MiB ,而使用浅复制只有 5MiB 多,这样即使在恶劣的网络环境下,也可以快速的获得代码。如果之后又想获取完整历史信息,可以使用下面的命令:

1

$ git fetch --unshallow

或者,如果你只是想下载最新的代码看看,你也可以直接从 GitHub 上下载打包好的 ZIP 文件,这比浅复制更快,因为它只包含了最新的代码文件,而且是经过 ZIP 压缩的。但是很显然,浅复制要更灵活一点。

备注:也可以通过下载.ZIP压缩包,然后只从github上clone那个.git目录,如下:转载至:https://stackoverflow.com/questions/15681643/how-to-clone-git-repository-from-its-zip

  • Grab the .git directory by cloning a bare repository

    $ mkdir repo
    $ git clone --bare http://github/user/repo repo
    
  • Make the .git directory and move the cloned files

    $ mkdir repo/.git
    $ mv repo/* repo/.git
    
  • Unzip the repository

    $ unzip repo.zip
    
  • Re-initialize the repository

    $ cd repo
    $ git init

注意在拷贝src code的时候,有可能有.gitignore和.gitmodule,通过cp -rf的方式不能拷贝过来,需要单独cp .gitignore,cp .gitmodule才能拷贝过来,然后执行git submodule update --init --recursive --depth=1 ,注意这里继续用--depth=1能节省好多下载时间。

 

二、GUI 工具 + 代理

如果很有幸你正在使用代理,懂得如何的话,那么访问 GitHub 对你来说应该不在话下。下载 GitHub 上项目的最简单的方法就是使用一款图形化界面(GUI)的 Git 工具,这样的工具现在比比皆是。使用 GUI 工具方便的地方在于,可以在设置中配置是否要使用代理,将你所使用的代理 IP 拿过来配置上就 OK 了,或者更直接的,将代理配置为系统代理。

三、git + http.proxy

如果你跟我一样,喜欢使用原生的 git 命令,喜欢在命令行下操作的那种感觉,那么也可以在命令行下直接配置 git 使用代理,当然前提一样是,你懂得如何。

1

2

$ git config --global http.proxy http://proxyuser:[email protected]:8080

$ git config --global https.proxy https://proxyuser:[email protected]:8080

使用上面的命令配置完之后,会在 ~/.gitconfig 文件中多出几行:

1

2

3

4

[http]

    proxy = http://proxyuser:[email protected]:8080

[https]

    proxy = https://proxyuser:[email protected]:8080

你也可以使用下面的命令检查配置是否生效:

1

2

$ git config --global --get http.proxy

$ git config --global --get https.proxy

另外,如果你想取消该设置,可以:

1

2

$ git config --global --unset http.proxy

$ git config --global --unset https.proxy

配置完成后,重新 clone 一遍,可以看到速度得到了极大的提升!

git-faster.png

 

转载至:https://www.aneasystone.com/archives/2015/08/git-clone-faster.html

 

你可能感兴趣的:(开源)