一、环境

Git 2.34.1

二、前言

一般来说,我们在克隆git仓库的时候,都是一整个仓库都克隆出来的。如果假设现在有一个很大的仓库,仓库里有多个子项目,而我们只想克隆其中一个子项目的时候,应该怎么做呢?

可以使用稀疏检出(sparse checkout)功能。

注意:稀疏检出仍然需要将整个仓库下载下来,并不会缩短你的克隆时间,它只是将其它不需要的文件夹隐藏了而已

三、步骤

在这里插入图片描述
假设我们的仓库目录结构如上,repo是仓库名字,project1project2是仓库里的两个子项目,而我们现在希望只检出apple文件夹,其它的文件夹隐藏掉。

1)首先,执行以下命令克隆仓库:

git clone --no-checkout https://gitee.com/repo.git

https://gitee.com/repo.git是git仓库的地址,根据实际情况替换。因为使用了--no-checkout参数,所以克隆出来的仓库是看不到任何文件的,我们还需要执行稀疏检出操作。

2)开启稀疏检出功能:

cd repo
git sparse-checkout init

3)将apple文件夹添加到检出目录里:

git sparse-checkout set "/project1/apple/"

set命令后面可以跟多个子目录路径,例如:

git sparse-checkout set "/project1/apple/" "/project2"

如果多次执行set命令,后面的命令会覆盖前面的命令,如果不想覆盖,只是仅新增目录,可以使用add命令。

其它相关命令:

# 查看当前的稀疏检出目录有哪些
git sparse-checkout list

# 关闭稀疏检出功能
git sparse-checkout disable

# 在手动修改了.git/info/sparse-checkout文件的内容后,使修改生效
git sparse-checkout reapply

关于sparse-checkout命令更多的信息,参阅这里

4)检出

git checkout

完毕!

四、参阅

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部