git加速和只下载部分目录

浅复制

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

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

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

$ git fetch --unshallow

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

用该命令还是没法得到分支 fusion_dev下的代码。

断点续传的方法

mkdir zadas

cd zadas

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

中间如果断了,就再执行一下 git clone ...

直到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

 

转载于:https://www.cnblogs.com/tangxiaosheng/p/10675824.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值