如何使用 Git 只克隆部分文件
背景
对于使用大仓模式开发的团队,项目代码按目录存放在同一个仓库下,代码和历史提交日积月累,每次跑流水线时如果克隆全量代码,效率非常低。
所以需要一个机制,可以只克隆部分我们关心的文件,本文主要记录之前研究和尝试的结果。
怎么做
第一步、初始化
1 | git clone --depth 1 --filter=blob:none --sparse https://github.com/HunterXuan/wx-tfjs-demo.git |
--depth
用于控制克隆的历史版本次数,对于 CICD 的场景,一般只关心最新版本,所以这里指明克隆深度为 1 即可--filter
在部分克隆的模式下,用于指明要克隆的文件,这里排除了所有的二进制文件--sparse
指定使用sparse-checkout
模式,该模式下仅克隆根目录下的文件,后续可使用git-sparse-checkout
命令新克隆文件
第二步、检出需要的文件
1 | git sparse-checkout set file1 dir1 |
使用上述命令可检出关心的文件和目录,多个文件/目录用空格隔开即可。