本文介绍了如何使用Git进行子模块稀疏检出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
关于稀疏签出的文章很多,所以也有疑问.不幸的是,我没有找到具体的例子.我想得到以下示例工作:
There are a lot of articles and SO questions about sparse-checkout. Unfortunately I did not find concrete examples. I would like to get this following example work:
cd ~
mkdir sub && cd $_
git init
mkdir foo && touch $_/foo
mkdir bar && touch $_/bar
git add .
git commit -am "Initial commit"
创建一个项目
cd ~
mkdir project && cd $_
git init
git submodule add ../sub sub
git config -f .gitmodules submodule.sub.shallow true
git config -f .gitmodules submodule.sub.sparsecheckout true
echo foo/* > .git/modules/sub/info/sparse-checkout
git commit -am "Initial commit"
git submodule update
cd sub
git checkout .
至此,我希望sub
文件夹仅包含foo/foo
而不包含bar
.不幸的是,它不起作用:
A this point I am expecting sub
folder to only contain foo/foo
not bar
. Unfortunately it doesn't work:
$ ls
bar/ foo/
我如何使它工作?
推荐答案
git submodule add
本身签出子模块.
对我来说成功的是:
git init
# I did not find a way to add submodule in 1 step without checking out
git clone --depth=1 --no-checkout ../sub sub
git submodule add ../sub sub
git submodule absorbgitdirs
# note there is no "submodule.sub.sparsecheckout" key
git -C sub config core.sparseCheckout true
# note quoted wildcards to avoid their expansion by shell
echo 'foo/*' >>.git/modules/sub/info/sparse-checkout
git submodule update --force --checkout sub
这篇关于如何使用Git进行子模块稀疏检出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!