我在Git中有一个大型存储库。如何在Jenkins中创建一个只从项目中检出一个子文件夹的工作?Jenkins和Git稀疏结帐
回答
Jenkins Git Plugin支持稀疏结账因为git-plugin 2.1.0(2014年4月)。这个功能需要git> = 1.7.0。它位于“其他行为” - >“稀疏检出路径”下。
参见:JIRA问题JENKINS-21809
不幸的是,Git仍然需要在本地复制整个存储库。所以你可能没有经历任何速度改进Git从服务器获取文件。 – luka5z
不幸的是,它仍然检查出原来的“路径结构”是完好无损的,所以它不像它实际检查出“一个目录”,它恰好只存在一个目录,FWIW – rogerdpack
相当老的一个,但我们如何定义一个带空格的子目录名称。我想结账“文件夹/到/包含/目录与空间”.. – OK999
您可以使用Git的sparse checkout功能。请注意,Git仍将整个存储库克隆到本地磁盘。但这并不算太坏,因为它被压缩了。
- 在Jenkins中创建一个新工作,在源代码管理部分设置Git存储库。
- 构建项目。这会将整个存储库克隆到本地磁盘。
- 打开项目的工作区文件夹,删除除.git文件夹以外的所有内容。
打开项目工作区文件夹的Git shell。启用稀疏结帐:
git config core.sparsecheckout true
更新工作树:
git read-tree -mu HEAD
创建
sparse-checkout
文件中的.git /信息文件夹中。添加路径要检出该文件,像这样子文件夹(注意斜线):folder/to/include/
再次生成项目。这次只有一个子文件夹应该出现在工作区文件夹中。
你是否必须为每项工作执行这些命令? –
@RuudLenders是的,您需要为每个您想要仅签出一个子文件夹的作业执行此操作。 –
不应该按照步骤6'git read-tree -mu HEAD'执行步骤6?据我所知,应该首先告诉Git应该查看哪些文件(步骤6),然后将树信息读入索引。 – borisdiakur
可能您只是将使用
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
这一切取决于您对詹金斯的了解程度。
问题在于Jenkins通常使用插件来获取源代码,Git插件不允许您更改结帐命令。 –
我想编写或修改一个现有的插件将是一个太多的问题。 –
- 1. git结帐。添加稀疏结帐排除的目录
- 2. 稀疏结帐和浅层克隆
- 3. Git稀疏结账排除
- 4. 将Git子模块设置为浅克隆和稀疏结帐?
- 5. Jenkin的稀疏结账后Git结帐不工作
- 6. 使用Git稀疏结账用git-TF
- 7. 詹金斯触发与git稀疏结帐
- 8. 如何使用Java在git中执行稀疏结帐
- 9. 配置现有的git回购稀疏结帐
- 10. TFS稀疏结帐本地工作区
- 11. Git 1.7.0中的稀疏结账?
- 12. 什么是git稀疏结帐和什么情况下它是有用的?
- 13. git稀疏结账和github的浅克隆问题
- 14. 稀疏三元组稀疏矩阵matlab
- 15. 将SVN回购还原为稀疏结帐(undo'svn up --set-depth infinity')?
- 16. 如何在JGit中实现稀疏结帐?
- 17. 如何使用稀疏结帐排除文件夹
- 18. 詹金斯稀疏结帐:只有目录的内容
- 19. 的MongoDB:稀疏的独特价值和稀疏复合索引
- 20. Git的稀疏结账简单的Web部署
- 21. 有没有办法将Git限制在稀疏结账?
- 22. svn vs git浅(稀疏)结账 - 分支,提交
- 23. 一个git仓库,条件根基于稀疏结账
- 24. GIT - 稀疏结账不按预期方式工作
- 25. 稀疏矩阵和矩阵
- 26. Python hashlib和稀疏文件
- 27. 稀疏矩阵和本征
- 28. 检查稀疏
- 29. 稀疏矩阵
- 30. 在稀疏表
真的有必要补充一点的复杂性?一旦仓库第一次被克隆,git就会拉动新的对象。除非你的jenkins服务器缺乏足够的存储空间,否则我只会克隆整个系统并避免任何额外的复杂性。 – wadesworld