问题描述
目前git已经支持了部分代码的克隆,具体做法如下:
# 添加远端引用
git remote add -f origin <remote_url>
# 激活 spare checkout
git config core.sparsecheckout true
# 详细指定要检出的子目录(或文件)
echo "subdir1" >> .git/info/sparse-checkout
# 同步版本到本地
git pull origin master
这样就只会把远端库中的/subdir1同步到本地。
现在我的问题是:git submodule add,是否也同样支持sparse checkout吗?
查阅了帮助,似乎没有看到相关的内容。
期望的效果
典型的场景就是,有个python公共库,库中有多个目录,比如:
common-lib/ # 公共库,由 git://reposity/common-lib.git 管理版本
doc/ # 相关文档
src/ # 代码
common/ # 公共库源代码
test-common/ # 公共库测试代码
那么使用这个库的某个工程yasi-project,期望有如下结构:
yasi-project/ # 工程yasi,由 git://reposity/yasi-project.git 管理版本
doc/ # 工程文档
src/ # 代码
common/ # 引用公共库 -> common-lib/src/common
yasi/ # 工程的代码
test-yasi/ # 工程的测试代码
以上结构,git是否能支持呢?
用
submodule
添加了子仓库之后 你再到 .git/modules/xxx 下面会看到子仓库的配置打开 sparsecheckout
添加 sparse-checkout 文件即可, 是一样的