博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git只拉取github部分代码的方法
阅读量:6161 次
发布时间:2019-06-21

本文共 975 字,大约阅读时间需要 3 分钟。

需求:github某个项目所有代码太大,有600+M,甚至更大;只需要拉取部分代码,一是可以降低网络消耗,二是可以降低磁盘占用

 

分析了下空间占用情况:发现每个项目下的.git/objects/pack都很大,这应该是git的机制,使用git就避免不了下载这个东西,所以降低网络消耗的需求暂时满足不了,后续再研究吧

~/gitlab/druid/.git/objects/pack

 

方法一:参考 https://blog.csdn.net/u022812849/article/details/53025248

但是只解决了本地磁盘的占用的问题;没有解决网络消耗的问题,因为从下图可以看到,中间还是把整个内容下载了一遍,没有节省网络消耗。感觉这样,还不如全部下载下来,然后删除不需要的内容来的简单

实例

下面以克隆开源项目下的/druid/doc目录为例。

$ mkdir druid$ cd druid  $ git init // 初始化空仓库$ git remote add -f origin https://github.com/alibaba/druid.git // 关联远程地址 ,这一步不要终止执行,不然下面操作无效$ git config core.sparsecheckout true // 开启Sparse Checkout模式$ echo "doc" >> .git/info/sparse-checkout // 设置需Check Out的文件。直接从项目目录下开始$ git pull origin master // Check Out... ...
Receiving objects: 100% (111624/111624), 51.91 MiB | 227.00 KiB/s, done.  文件大小111624,全部下载下来了

 

另外一旦设置拉取的文件后,后续就不能再添加或者减少拉取或者提交的代码范围,修改sparse-checkout无效。除非按照步骤再来一遍echo "doc" >> .git/info/sparse-checkout // 设置需Check Out的文件

 

其实这可以用于合作开发的项目中,每个项目成员只拉取自己的代码部分,然后提交的时候也只提交自己的代码部分。减少误操作的可能性

 
你可能感兴趣的文章
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
Spring常用注解
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
js中var、let、const的区别
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
Apache通过mod_php5支持PHP
查看>>
java学习:jdbc连接示例
查看>>