从Git远程仓库单独拉取指定目录或文件的实现

 更新时间:2026年06月24日 10:02:45   作者:成尚谦  
这段文章介绍了Git稀疏检出功能的使用方法,重点在于从远程仓库中检出指定文件夹或部分文件,文章详细描述了从新建项目目录到设置稀疏检出模式的操作步骤,适合Git初学者和需要高效管理代码的开发者参考

1、背景

工作中,总是会有一些特殊需求或场景,只希望从Git的远程仓库里检出或拉取指定的文件夹或部分文件出来。

Git 1.7.0后,可以使用Sparse Checkout(稀疏检出)模式实现。

2、什么是Git

Git是一种版本控制系统,它可以记录文件在不同时间点的版本变化并且跟踪文件的更改历史。

它最初是由Linus Torvalds为了管理Linux内核的开发而创建的。现在,Git已经成为了许多开发者进行协作开发和版本控制的首选工具之一。

Git具有分支管理、代码合并等丰富的功能,可以帮助团队协同工作,提高项目的质量和效率。

3、操作步骤

3.1、新建项目目录

如果Windows操作系统,同时装了Git Bash的话,也可以打开Git Bash执行命令

# 在D:/temp打开命令行窗口或Git Bash,新建项目x-archive目录,并进入到x-archive目录下
mkdir x-archive && cd x-archive

3.2、初始化本地仓库

git init
Initialized empty Git repository in D:/temp/x-archive/.git/

3.3、添加绑定远程仓库

git remote add -f main https://gitee.com/xxx/x-archive.git
Updating main
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (52/52), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 52 (delta 9), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (52/52), done.
From https://gitee.com/xxx/x-archive
 * [new branch]      main       -> main/main
 * [new tag]         V1.0.0     -> V1.0.0
 * [new tag]         V1.0.1     -> V1.0.1

执行后会列出远程仓库中的分支以及版本号等信息,分支名称等信息后面会用到

3.4、设置稀疏检出模式

设置sparse checkout稀疏检出模式,允许检出在下一步指定的文件夹或部分文件

git config core.sparsecheckout true

3.5、指定要检出的文件夹或部分文件

# 指定检出archive/config目录下的application.yaml,可以使用通配符,比如*,也可以使用!表示反选,
# 例如 archive/或archive 表示可以检出archive目录下所有文件夹和文件
echo archive/config/application.yaml >> .git/info/sparse-checkout

可以查看设置的内容

# Windows操作系统如果使用Git Bash打开命令窗口,也可以执行下面命令查看
cat .git/info/sparse-checkout
archive/config/application.yaml

3.6、检出的指定的文件夹或部分文件

# 从远程仓库main的main分支中检出指定的文件夹或部分文件
git fetch
git pull main main
From https://gitee.com/xxx/x-archive
 * branch            main       -> FETCH_HEAD

支持tree的控制台(git bash可能需要另外安装,window或linux控制台)可以直接使用tree命令查看检出的文件夹或文件

# 在window的控制台中,进入到项目目录,输入tree /F命令
D:\temp\x-archive>tree /F
D:.
└─archive
    └─config
            application.yaml

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 性能测试监控网络吞吐量过程详解

    性能测试监控网络吞吐量过程详解

    这篇文章是关于性能的文章,主要介绍了性能测试中测试监控网络吞吐量过程,文中给了详细的示例分析,有需要的朋友可以借鉴参考下
    2021-09-09
  • Wordpress 忘记密码的处理方法

    Wordpress 忘记密码的处理方法

    有时候不小心忘了wordpress的密码了,大家可以按照下面的方法试试。
    2009-05-05
  • 2019最新的Pycharm激活码(推荐)

    2019最新的Pycharm激活码(推荐)

    PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性。这篇文章给大家介绍2019最新的Pycharm激活码,需要的朋友一起看看吧
    2019-10-10
  • matlab 生成.bmp格式的文件

    matlab 生成.bmp格式的文件

    这篇文章主要介绍了matlab 生成.bmp格式的文件,本文以大小为M*N的图片为例,说明头文件格式和内容。需要的朋友可以参考下
    2018-10-10
  • Git命令的简单整理大全

    Git命令的简单整理大全

    这篇文章主要给大家介绍了关于Git命令的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • 自定义 Github Action 库实战详解

    自定义 Github Action 库实战详解

    这篇文章主要为大家介绍了自定义 Github Action 库实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • POST与GET方法的区别简要分析

    POST与GET方法的区别简要分析

    原理介绍:理论上说,GET是从服务器上请求数据,POST是发送数据到服务器。事实上,GET方法是把数据参数队列(query string)加到一个URL上,值和表单是一一对应的。
    2008-10-10
  • 12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)

    12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)

    这篇文章主要介绍了11种实现301网页重定向方法的代码实例,文中包含9种编程语言和3种WEB服务器配置方法,共计12种,需要的朋友可以参考下
    2014-07-07
  • 在kali上安装AWVS的图文教程

    在kali上安装AWVS的图文教程

    这篇文章主要介绍了在kali上安装破解AWVS的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 让开发自动化 用 Eclipse 插件提高代码质量

    让开发自动化 用 Eclipse 插件提高代码质量

    如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,Eclipse 插件中就有这样的工具,比如 JDepend 和 CheckStyle,它们能帮您在软件问题暴露前发现这些问题。
    2009-05-05

最新评论