• Git如何检出指定目录或文件


    系统版本:Window 10,Git 版本:2.7.1

    对于大型 Git 仓库,每次执行 Git 命令,都需要经过漫长的等待,特别是要经常执行的 git status 命令。下面是一个例子...

    图片加载中...

    从 1.7.0 开始,Git 引入 sparse checkout(稀疏检出) 机制,稀疏检出机制允许只检出指定目录或者文件,这在大型 Git 仓库中,将大幅度缩短 Git 执行命令的时间。

    要想只检出指定的目录或文件,需要在 .git/info/sparse-checkout 文件中指定出目录或文件的路径,下面将以一个具体例子介绍 如何使用 Git 的 sparse checkout

    准备远程仓库

    初始化一个仓库,目录结构如下图所示:

    图片加载中...

    根目录下有 2 个子目录,以及一个 LICENSE 文件和 README.md 文件,每个子目录中各有 3 个。
    将其推送到Github上新建的一个仓库,地址是 git@github.com:liangzai-cool/git-sparse-checkout-study.git

    为Git配置稀疏检出

    换一个目录,再初始化一个 Git 仓库,以便用稀疏检出的方式,检出刚才在 Github 上新建的 git-sparse-checkout-study 仓库:

    图片加载中...

    使用 git config core.sparseCheckout true 命令开启 Git 稀疏检出模式。然后编辑该仓库目录下的 .git/info/sparse-checkout 文件,指定检出规则。这里只检出 git-sparse-checkout-study 仓库中的 dir1 目录下的所有文件和 根目录下的 README.md 文件:

    图片加载中...

    检出

    添加远程仓库地址,并检出:

    图片加载中...

    可以看到,Git 只检出了根目录下的 README.md 文件和 dir1 目录。

    如果此时需要再检出,根目录下的 dir2 目录,则需要将其加入到 .git/info/sparse-checkout 文件中。参照下图中的方案:

    图片加载中...

    关闭稀疏检出

    和上面检出 dir2 时类似:

    图片加载中...

    可以看到所有文件都已显示出来了。
    注意这里的 echo 命令:

    echo "/*" > .git/info/sparse-checkout
    

    最后不要忘了配置 Git 的 core.sparseCheckoutfalse 以及移除 .git/info/sparse-checkout 文件。

    .git/info/sparse-checkout 中使用和 .gitignore 相同的匹配模式,例如 非匹配 !/dir2/* 以及 /*.java 等。

    原文链接http://xueliang.org/article/detail/20160819001000543

  • 相关阅读:
    ADempiere3.6.0LTS 创建国家地区城市(基于Ubuntu Desktop 12.04 LTS)
    博客在此定居
    [SharePoint 2010] 关于 "Error message when view or edit in browser for Word or PowerPoint Web Apps” 错误
    [SharePoint 2010] Project Server for SharePoint 2010
    2019版:第八章:(2)Redis 哨兵模式
    Redis6:第一章:(2)NoSQL数据库
    2019版:第九章:Redis 集群
    第二章:(1)Synchronized 锁
    Redis6:第一章:(1)技术发展
    第二章:(2)Lock 接口
  • 原文地址:https://www.cnblogs.com/liangzai-cool/p/5821138.html
Copyright © 2020-2023  润新知