在克隆大型项目的时候,可能实际仅需要其中的一部分文件。以micropython为例,我们可能仅需要它的跨平台编译工具mpy-cross
,那么只需要用到其中的lib
,py
及ports
中的部分内容即可。
使用git的sparse-checkout
命令,可以只拉取指定的目录和文件。
实际上仍然会下载整个仓库,只是显示的时候仅列出指定的内容,所以并不能缩短下载时间。
下面来说明主要的操作流程:
git init
git remote add -f origin https://github.com/micropython/micropython.git # 替换为需要克隆的仓库地址
# 1.启用并初始化sparse-checkout功能
git sparse-checkout init
# 2.添加需要包含的目录或文件
git sparse-checkout set lib py mpy-cross ports/unix ports/windows
# 3.拉取文件
git checkout master # 或者 git pull origin master
后续可以通过 git sparse-checkout add
命令添加其他目录或文件。
网上搜索到的使用方法,大部分都是通过echo "file" >> .git/info/sparse-checkout
的方法设定需要拉取的目录,在我的实践中似乎不管用。通过命令来操作更加方便快捷。