我在Git中有一个大型存储库。如何在Jenkins中创建一个只从项目中检出一个子文件夹的作业?
答案 0 :(得分:56)
Jenkins Git Plugin支持稀疏结账。此功能需要git> = 1.7.0。它属于"附加行为" - > "稀疏结账路径。"
请参阅:Jira问题JENKINS-21809
答案 1 :(得分:23)
您可以使用Git的sparse checkout功能。请注意,Git仍然将整个存储库克隆到本地磁盘。然而,这并不是太糟糕,因为它是压缩的。
打开项目工作区文件夹的Git shell。启用稀疏结账:
git config core.sparsecheckout true
更新工作树:
git read-tree -mu HEAD
在.git / info文件夹中创建sparse-checkout
文件。添加要签出到该文件的子文件夹的路径,如下所示(注意尾部斜杠):
folder/to/include/
再次构建项目。这次只有一个子文件夹应出现在工作区文件夹中。
答案 2 :(得分:1)
您可以使用
进行自定义步骤git checkout your-branch -- the/desired/path anthother/desired/path
要清除它,您只需rm -rf
工作文件夹,然后使用mkdir workingdir
重新创建它。这将要求您在上述命令的git级别指定此选项:
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
这一切都取决于你对詹金斯的了解程度。