繁体   English   中英

Jenkins和Git稀疏结账

[英]Jenkins and Git sparse checkouts

我在Git中有一个大型存储库。 如何在Jenkins中创建一个只从项目中检出一个子文件夹的作业?

自git-plugin 2.1.0(2014年4月)以来, Jenkins Git Plugin支持稀疏检出 此功能需要git> = 1.7.0。 它位于“附加行为” - >“稀疏结账路径”下。

截图

见:Jira问题JENKINS-21809

您可以使用Git的稀疏结账功能。 请注意,Git仍然将整个存储库克隆到本地磁盘。 然而,这并不是太糟糕,因为它是压缩的。

  1. 在Jenkins中创建一个新作业,在源代码管理部分设置Git存储库。
  2. 建立项目。 这会将整个存储库克隆到本地磁盘。
  3. 打开项目的工作区文件夹,删除除.git文件夹之外的所有内容。
  4. 打开项目工作区文件夹的Git shell。 启用稀疏检查:

     git config core.sparsecheckout true 
  5. 更新工作树:

     git read-tree -mu HEAD 
  6. 在.git / info文件夹中创建sparse-checkout文件。 添加要签出到该文件的子文件夹的路径,如下所示(注意尾部斜杠):

     folder/to/include/ 
  7. 再次构建项目。 这次只有一个子文件夹应出现在工作区文件夹中。

您可以使用自定义步骤

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

这一切都取决于你对詹金斯的了解程度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM