Git 2.25加入稀疏签出功能,让开发者只签出需要的文件

开源Git项目现在刚发布了Git 2.25,而这个版本加入了新的实验性稀疏签出指令Git sparse-checkout,这个指令可提升大型存储库的操作性能,结合部分复制功能(Partial Clone),则更可加快数据传输速度。

当开发者的存储库根目录有过多的文件,而使得Git checkout或是Git status等指令执行过慢,这个问题对于只想要修改一小部分文件的开发人员来说,可能非常困扰。而Git 2.25新加入的稀疏签出功能,让开发者将工作目录只限制在要使用的文件上,具体而言,当开发者在单一存储库中放置所有微服务的程序代码,就能使用稀疏签出让开发流程尽可能维持顺畅,同时受益于单一存储库所带来的优点。

而过去,要使用稀疏签出功能,开发者需要手动编辑.Git目录中的文件,更改设置并执行复杂的指令,而当要恢复至原本的设置,手续则更加麻烦,新的Git sparse-checkout指令让过程变得简单,开发者要先执行初始化Git sparse-checkout init –cone,Git贡献者Derrick Stolee提到,这个初始化子命令是必要的配置选项,用来指示Git系统只在根目录配对文件,而接下来在以子命令Git sparse-checkout set设置模式,以模式修改稀疏签出文件,以配对在指定目录中的文件。

另外,Git 2.25中的部分复制功能也已经可用,所有开发者都可以配置使用。由于Git存储库的副本会复制所有的数据,包括每个文件的每个版本,而对于非常庞大的存储库来说,即便用户只想访问其中一部分的文件,也要花费极高的网络与存储资源,甚至可能还无法使用,而Git部分复制功能,则可以让开发者复制和使用部分存储库的内容。

将稀疏签出和部分复制功能搭配使用,可以加快开发工作流程,Derrick Stolee表示,当开发者不需要每一个Git对象,仅下载需要的目录文件,可以加快整个数据传输过程。不过目前GitHub仍在评估部分复制的功能,GitHub官方提到,当该功能稳定且成熟,会逐步发布更新的进度。

Git开发团队在接下来的计划,会持续改进复制和稀疏模式的使用体验,也会提供添加与移除子命令,同时还也添加stats子命令,以非稀疏工作目录的总大小,来衡量实际要操作的目录大小。