前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git sparse checkout (稀疏检出)

git sparse checkout (稀疏检出)

作者头像
艳龙
发布2021-12-16 17:51:12
1.2K0
发布2021-12-16 17:51:12
举报
文章被收录于专栏:yanlongli_艳龙yanlongli_艳龙

前言

开发的mac机器只有256G的硬盘,工程代码仓库 clone 下来后少的10几G,大的有60多G, 所以在日常的使用中,经常会遇到磁盘空间不足的问题,头痛不已。 我们是跨平台开发,git仓库中会保存mac/linux两个平台所需要的所有文件。 其中 *.so 等一些文件在开发mac工程时是不需要的,可以使用sparse checkout功能在同步远程仓库时候,不拉取这些文件,给磁盘留出多一些的可用空间。

本地没有还没有clone仓库

可以执行如下命令,只拉取指定的目录下内容

代码语言:javascript
复制
$ git init <project>
$ cd <project>
$ git remote add origin https://*****.git   //  你的git仓库地址
$ git config core.sparsecheckout true
$ echo "path1/" >> .git/info/sparse-checkout
$ echo "path2/" >> .git/info/sparse-checkout
$ git pull origin [branch]   // 你的分支名称
  • git init <project> : 建立一个空的版本库
  • git remote add origin https://*****.git : 添加远程库的地址
  • git config core.sparsecheckout true : 打开sparse checkout功能
  • echo "path1/" >> .git/info/sparse-checkout : 添加目录到checkout的列表 ,也可以使用文本编辑
  • git pull origin [branch] : 拉取远程的分支

本地已clone了仓库

  • 1、打开 sparse checkout 功能 进入版本库的目录,执行以下命令
代码语言:javascript
复制
$ git config core.sparsecheckout true

.git/config 配置文件中可以看到新增了 sparsecheckout = true 的配置

代码语言:javascript
复制
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
    sparsecheckout = true
  • 2、 添加 checkout 列表 使用文本编辑打开 .git/info/sparse-checkout 文件 (没有这个文件可以手动创建一个) 添加如下列表。
代码语言:javascript
复制
/*
!/add_on/native_addon/kylinv4_ft1500a/*
!/add_on/native_addon/neokylin_lib/*
!/add_on/native_addon/ubuntu_lib/*
!/add_on/native_addon/uos_arm_lib/*
!*.so
  • 3、 重新checkout
代码语言:javascript
复制
$ git checkout [branch]   // 你的分支名称

or 

$ git read-tree -mu HEAD

sparse-checkout 文件设置

  • 子目录的匹配 在 sparse-checkout 文件中,如果目录名称前带斜杠,如/docs/,将只匹配项目根目录下的docs目录,如果目录名称前不带斜杠,如docs/,其他目录下如果也有这个名称的目录,如test/docs/也能被匹配。 而如果写了多级目录,如docs/05/,则不管前面是否带有斜杠,都只匹配项目根目录下的目录,如test/docs/05/不能被匹配fd
  • 通配符 ““ (星号)匹配 在 sparse-checkout 文件中,支持通配符 ““,如可以写成以下格式: docs/ index.

*.so

  • 排除项 “!” (感叹号)匹配 在 sparse-checkout 文件中,也支持排除项 “!”,如只想排除排除项目下的 “docs” 目录,可以按如下格式写: /*

!/docs/

关闭sparsecheckout

要注意一点:关闭sparsecheckout功能,全取整个项目库,可以写一个”“号,但如果有排除项,必须写”/“,同时排除项要写在通配符后面。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 本地没有还没有clone仓库
  • 本地已clone了仓库
  • sparse-checkout 文件设置
  • 关闭sparsecheckout
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档