git clone 仅在新更改和存档 scm 上

Posted

技术标签:

【中文标题】git clone 仅在新更改和存档 scm 上【英文标题】:git clone only on new change and archive scm 【发布时间】:2015-10-08 17:36:39 【问题描述】:

我使用 Jenkins 每 10 分钟从 git 提取代码,然后编译、存档以供其他作业克隆此工作区。目前它每次都从 git 中提取代码,然后每次都归档。

我只想在有任何新更改时从 git 克隆代码,否则它应该跳过并且不归档工作区。我应该使用哪个插件以及我应该在其中进行什么配置?

【问题讨论】:

【参考方案1】:

所以听起来你这里有几件事要发生。以下是我用来满足类似需求的一些可能的建议:

1.) 如果您只想在源代码控制(在本例中为 GIT)发生更改时构建您的工作,您可以使用“Poll SCM”插件。然后在那里设置一个 cron 表达式,每 10 分钟运行一次。

“Poll SCM”插件将检查源代码控制是否有任何更改,并在找到它们时构建作业。如果这工作正常,您的工作将无法构建,因此它不会归档任何不必要的内容。

2.) 对于存档,我会确保使用“丢弃旧版本”插件和“高级”部分来为您的工作工件保留轮换和保留政策。

3.) 您声明“让其他作业克隆此工作区”。你真的有其他工作在这个工作空间里吗?或者你的意思是复制它的工件?我问是因为工作空间在某种意义上是临时的,你应该拉出工件。您可以使用一个名为“Copy Artifact Plugin”的插件,它允许各种选项。

4.) “Poll SCM”插件的替代方案,如果它不起作用或者您不喜欢这个,根据您的 GIT 设置,您还可以设置一个钩子来通知 Jenkins 更改。根据 GIT 实现,有各种钩子。

希望这会有所帮助!

【讨论】:

以上是关于git clone 仅在新更改和存档 scm 上的主要内容,如果未能解决你的问题,请参考以下文章

如何从github上clone

linux git clone 指定分支

IDEA从git上clone项目

学Git,用Git ②

androidstudio连接SCM Manager上的Git库

git学习整理git clone 理解