• git只拉取github部分代码的方法


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

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

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

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

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

    实例

    下面以克隆开源项目druid下的/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的文件

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

     
  • 相关阅读:
    linux就该这么学.pdf
    linux中shell编辑小技巧
    相关功能分享
    现代操作系统第三版高清.pdf中文版免费下载
    linux高性能服务器编程pdf免费下载
    git每次更新都需要输入账号密码,如何解决?
    Python 面向对象
    模块和包
    Python常用模块(collections、 time、 random、 os 、sys、序列化模块)
    内置函数和匿名函数(lambda)
  • 原文地址:https://www.cnblogs.com/shengulong/p/9425030.html
Copyright © 2020-2023  润新知