从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

4、参考

参考文章:Git拉取指定文件或者文件夹
Git官网:Git官方网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成尚谦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值