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

当项目代码过大时,为降低网络消耗和磁盘占用,可以通过Git的Sparse Checkout功能只拉取所需部分。文章介绍了配置过程,但指出这种方法无法减少网络消耗,适合团队成员按需拉取自己负责的代码。还提到了Jenkins从GitHub拉取代码构建的场景,以及解决Git操作中认证问题和管理远程分支代码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求: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的文件

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

Jenkins拉取github库代码执行构建

前言 上篇文章写了关于定时构建,以及构建后发送邮件的内容,但是构建时运行的代码是我们手动添加到Jenkins工作空间的.这篇文章我们说一说自动从GitHub远程库拉取代码,执行构建,废话不多说,开始! ...

git clone 拉取github上面的代码报错:fatal: Authentication failed for xxx解决

1.打开git bash,输入密码:git config --system --unset credential.helper2.结果报错:error: could not lock config f ...

【记录】git 拉取远程分支代码,同步到另一个git上

最近有需求从某git 上拉取所有分支代码同步到另一git上,现记录操作步骤,以便日后使用: 1:先克隆其中一个分支代码到本地环境 git clone -b test http://账号:密码@XXX. ...

git——解决每次拉取、提交代码时都需要输入用户名和密码

在开发中我们经常需要通过 git 对代码进行拉取和提交,频繁地输入用户名和密码会带来很大的麻烦,下面就介绍一下解决git每次拉取.提交代码时都需要输入用户名和密码的方法. 很简单,只要两步骤就能实现: ...

git提交拉取远程仓库

https://gitee.com/ ---- 国内服务器 https:/github.com/ ---- 国外服务器 git init  ---- 初始化(创建主分支)仓库 git clone 拉取 ...

(转)GitHub Desktop 拉取 GitHub上 Tag 版本代码

转自:GitHub Desktop 拉取 GitHub上 Tag 版本代码 一直在使用 GitHub Desktop 图形化 git 管理工具,统一项目框架版本时需要切换到ThinkPHP Tag 分 ...

git如何拉取指定分支的代码

问题背景: 新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到develop上(或者其他名称分支上),而不是到master分支上 通过git拉取代码的时候,默认拉取的是master分支,如下 ...

idea从git上拉取并管理项目

1:idea从git上拉取项目 (1)FILE --> New --> Project from Version Control --> Git (2):输入项目的Https SSH ...

【记录】Git pull(拉取),push(上传)命令整理(详细)

前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git ...

随机推荐

Java排序算法——表插入排序

//================================================= // File Name : ListInsertSort_demo //----------- ...

ASP.NET 上的 Async/Await 简介

原文链接 大多数有关 async/await 的在线资源假定您正在开发客户端应用程序,但在服务器上有 async 的位置吗?可以非常肯定地回答“有”.本文是对 ASP.NET 上异步请求的概念性概述, ...

Cocos2d-x 3.4环境安装

电脑系统window7 32位 1.首先从官网下载cocos2d-x并解压 http://cn.cocos2d-x.org/download/ 解压后的文件夹中有一个setup.py,双击运行.需要安 ...

iOS开发多线程篇—NSOperation基本操作

iOS开发多线程篇—NSOperation基本操作 一.并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. ...

oracle增删改查

=======================批量删除,只留前十条数据. delete from THIRD_PARTY_MERCHANT a where a.rowid in ( select ro ...

关于quotename的用法

首先,sqlserver里的标识符有一定的规则,比如  你 create table abc 123(...) 那么中间含有空格,它不是符合规则的. 你会写做 create table [abc 12 ...

【Python】【有趣的模块】【requests】【一】HTTP头信息总结

[HTTP请求 == 请求行 + 消息报头 + 请求正文 ] 请求行:Method Request-URL HTTP-Version CRLF HTTP协议定义了许多与服务器交互的方法 ① PUT:请 ...

Docker(二):Hello World

Docker 安装 这里以CentOS7 为例,其他安装教程可以自行通过其他路径了解. Docker 运行在CentOS7 上要求,系统为64位.系统内核版本为3.10以上. Docker 运行在 C ...

MATLAB 的数据类型

在MATLAB中有15种基本的数据类型: 8种整型数据类型.单精度浮点型(float).双精度浮点型(double).逻辑型(logical).字符串型(char).单元数组型(cell).结构体类型 ...

HihoCoder1665方块游戏([Offer收割]编程练习赛40)(线段树)

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在玩一款类似俄罗斯方块的游戏.与原版俄罗斯方块不同的是,落下方块都是长度不一的横向长条,并且不能移动也不能变成竖直方 ...

### 解决 Git 无法从 GitHub 代码的问题 当遇到 Git 无法从 GitHub 代码的情况时,可以采多种措施来解决问题。以下是几种常见情况及其对应的解决方案。 #### 验证 HTTPS 或 SSH 连接配置 如果使用的是 HTTPS 方式连接,则可能是因为 SSL 认证失败引起的问题。可以通过关闭 SSL 验证来进行测试: ```bash git config --global http.sslVerify "false" ``` 这一步骤有助于排除因网络环境造成的请求超时问题[^3]。 #### 处理分支不存在或未正确指定的问题 对于类似 `fatal: origin/dev is not a commit and a branch 'dev' cannot be created from it` 的错误提示,表明试图创建的分支在远程仓库中并不存在。此时应先确认目标分支确实存在于远程仓库内,并按照如下方式操作: 1. 创建本地新分支并与远程跟踪关联: ```bash git checkout -b dev origin/main ``` 2. 更新本地工作目录中的内容: ```bash git pull origin main ``` 以上步骤能够确保本地分支基于最新的远程主干版本建立起来[^2]。 #### 添加正确的远程地址 有时也会因为设置了不正确的远程 URL 而导致失败。可通过以下命令查看当前设置的远端链接: ```bash git remote -v ``` 若发现有误则需移除旧记录再添加新的: ```bash git remote remove old_remote_name git remote add new_remote_name https://github.com/user/repo.git ``` 完成这些调整后再试一次动作即可正常运作[^5]。 #### 合适的工作流程顺序 为了使整个过程更加顺畅,在执行任何更改之前建议遵循标准的操作序列: - 切换到所需的目标分支; - 使用 `git fetch` 获最新元数据而不立即合并; - 应用 `git merge` 或者直接采用更简便的 `git pull` 来同步改动; 最后记得保存所有变动并通过适当的信息提交回服务器上去[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值