Git 通过 Chef 检出单个目录

Git checkout single directory through Chef

有没有办法用 Chef 及其 git resource 进行稀疏结帐?或者,什么是最好的方法来完成同样的事情?

由于执行稀疏签出需要在执行拉取之前修改 .git 文件夹中的文件,因此我找不到让 git 资源配置存储库但没有尝试的方法在我可以编辑该文件之前拉。如果我等到 git 资源执行结束,那么分支顶端的文件总数将已经下载。

作为参考,如果我正在做一个 bash 脚本,我会这样做:

git init <my_repo>
cd <my_repo>
git remote add origin <my_repos_url>
git config core.sparsecheckout true
echo "my_directory/*" >> .git/info/sparse-checkout
git pull --depth=1 origin master

问题也张贴在这里:https://discourse.chef.io/t/sparse-checkout-with-git-resource/11834

这真的不支持。你最好的选择可能是使用 execute/bash 资源来完成除实际拉取之外的所有操作,然后在之后放置一个普通的 git 资源,因为一旦设置它就应该遵守设置。