git加速和只下载部分目录

浅复制

工做要用到的.git有1.8G太大了。下载过程要好几个小时,太慢了。能够这样操做android

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

$ git clone --depth=1 https://github.com/bcit-ci/CodeIgniter.git
--depth=1 表示只下载最近一次的版本,使用浅复制能够大大减小下载的数据量,例如,CodeIgniter 项目完整下载有近 100MiB ,而使用浅复制只有 5MiB 多,这样即便在恶劣的网络环境下,也能够快速的得到代码。若是以后又想获取完整历史信息,可使用下面的命令:github

$ git fetch --unshallow网络

对zadas我实际用的命令是:git clone --depth=1 http://shagit01.cn.zmt.local/ST/zadas.gitfetch

用该命令仍是无法获得分支 fusion_dev下的代码。url

断点续传的方法

mkdir zadasspa

cd zadasci

git fetch http://shagit01.cn.zmt.local/ST/zadasrem

中间若是断了,就再执行一下 git clone ...it

直到fetch完毕后,出现如下字样

 From  http://shagit01.cn.zmt.local/ST/zadas.git

 *branch           HEAD                -> FETCH_HEAD

而后用git checkout FETCH_HEAD

或者也等同于git fetch  http://shagit01.cn.zmt.local/ST/zadas.git HEAD

对这个方法须要持谨慎态度,由于我 git branch -r 显示远程分支,结果为空,实际是不对的。

下载个别目录

$ mkdir 文件夹名称

建立一个空的本地仓库
$ git init

链接远程仓库GitHub
$ git remote add -f origin <url>
个人操做:$ git remote add -f origin https://github.com/aliyun/alicloud-android-demo.git
而后控制台会显示一些updating...信息。注意,这里的url必须是.git结尾的。

开启sparse checkout 模式
$ git config core.sparsecheckout true

告诉Git哪些文件或者文件夹是你真正想Check Out的
(你能够将它们做为一个列表保存在 .git/info/sparse-checkout 文件中。)

例如:
$ echo libs >> .git/info/sparse-checkout

最后一步,拉取想要的分支

$ git pull origin master

相关文章
相关标签/搜索