我在 Git 中有一个大型存储库。如何在 Jenkins 中创建一个仅从项目中检出一个子文件夹的工作?
问问题
64651 次
3 回答
75
自 git-plugin 2.1.0(2014 年 4 月)以来,Jenkins Git 插件支持稀疏签出。您需要 git >= 1.7.0 才能使用此功能。它位于“其他行为”->“稀疏结帐路径”下。
请参阅:Jira 问题JENKINS-21809
于 2014-07-18T09:56:21.457 回答
29
您可以使用Git 的稀疏检出功能。请注意,Git 仍然会将整个存储库克隆到本地磁盘。然而,这并不算太糟糕,因为它是压缩的。
- 在 Jenkins 中创建一个新作业,在 Source Code Management 部分设置 Git 存储库。
- 构建项目。这会将整个存储库克隆到本地磁盘。
- 打开项目的工作区文件夹,删除除 .git 文件夹之外的所有内容。
打开项目工作区文件夹的 Git shell。启用稀疏结帐:
git config core.sparsecheckout true
更新工作树:
git read-tree -mu HEAD
sparse-checkout
在 .git/info 文件夹中创建文件。添加要签出到该文件的子文件夹的路径,如下所示(注意尾部斜杠):folder/to/include/
再次构建项目。这次只有一个子文件夹应该出现在工作区文件夹中。
于 2012-05-28T23:30:46.990 回答
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
这一切都取决于你对詹金斯的了解程度。
于 2012-05-29T00:25:38.967 回答