zoukankan      html  css  js  c++  java
  • 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的文件

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

     
  • 相关阅读:
    python基础学习文件内容的操作
    python基础学习字符串操作
    python基础学习运算符
    python基础学习列表
    centos一键安装nginx
    centos6添加整段多IP脚本
    Ubuntu 添加整段多IP脚本
    安装python2.7
    两位float型的小数相加,不会变成两位小时的处理方法
    mysql 5.7 执行group by 语句报错
  • 原文地址:https://www.cnblogs.com/shengulong/p/9425030.html
Copyright © 2011-2022 走看看