更多资讯,请访问:华为官方共建的鸿蒙技术社区https://ost.51cto.com看到社区有些仓库很大,下载下来需要很多时间。本文致力于稀疏检出,如何只检出那些我们关心的文件夹或文件,并整理在《2022年,继续做开源的朋友》系列。1.什么是稀疏结账?如果Git仓库很大,每次执行Git命令的等待时间都会很长。为了解决这些问题,从1.7.0开始,Git引入了稀疏校验功能。稀疏签出机制只允许签出指定的目录或文件。这将大大缩短Git在大型Git存储库中执行命令的时间。时间。如果只检出指定目录或文件,需要在.git/info/sparse-checkout文件中指定目录或文件路径。下面以快速查看仓库中https://gitee.com/openharmony/docs的部分文件夹为例进行演示。2、为Git配置sparsecheckout创建一个目录docs,然后初始化一个Git仓库,通过sparsecheckout的方式对https://gitee.com/openharmony/docs仓库中的部分文件夹进行检出。切换到新创建的目录,并使用命令gitconfigcore.sparseCheckouttrue启用Git稀疏检出模式。如下图所示:mkdirdocscddocsgitinitgitconfigcore.sparseCheckouttruegitconfig--list然后编辑仓库目录下的.git/info/sparse-checkout文件,指定checkout规则。.git/info/sparse-checkout使用和.gitignore一样的匹配模式,比如不匹配!/dir2/*和/*.java等,这里只查看/zh-cn/device-dev/kernelhttps://gitee.com/openharmony-sig/online_event仓库中的文件夹,并将本地仓库与远程仓库关联起来。echozh-cn/device-dev/kernel>>.git/info/sparse-checkoutgitremoteaddoriginhttps://gitee.com/openharmony/docs.git3.查看代码,继续执行命令查看出代码看看效果如图。可以看出,实际上只是检出指定的目录。gitpulloriginmaster4。关闭稀疏结帐。让我看看如何检出所有文件。执行如下命令,效果如图:echo"/*">.git/info/sparse-checkoutgitread-tree-muHEAD必要时完全关闭sparsecheckout,配置Git的core.sparseCheckout为false和删除.git/info/sparse-checkout文件。5.gitsparse-checkout命令对于更高版本的git,可以直接使用gitsparse-checkout来配置sparsecheckout。新版git的下载地址为https://git-scm.com/downloads。gitsparse-checkout命令不再一一介绍,直接体验即可快??速掌握。命令及执行效果如下:mkdirmy-docscdmy-docs/gitinitgitsparse-checkoutinitgitsparse-checkoutadd/zh-cn/device-devgitsparse-checkoutlistgitremoteaddoriginhttps://gitee.com/openharmony/docs.gitgitpulloriginmaster附录-参考资料:https://git-scm.com/docs/git-sparse-checkout。更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com
