Jenkins和Git:本地分支不再引用相应的远程分支

时间:2014-02-24 21:21:27

标签: git jenkins git-branch

我需要帮助理解以下内容:我正在运行Jenkins工作来构建一个托管在远程git仓库中的项目。我正在检查代码到子目录,并检查特定的本地分支“test-1.1”。我也有一个相应的远程分支。

但是,当我运行Jenkins构建并运行git branch -av时,我得到:

* test-1.1                        f10e15e Commit Text2
* remotes/origin/test-1.1         818da9e Commit Text1

当我手动执行git clone并checkout to branch-1.1时,git branch -av给出:

* test-1.1                        818da9e Commit Text1
* remotes/origin/test-1.1         818da9e Commit Text1

Jenkins构建似乎以不同的方式进行分支结账,但我不确定如何或什么。

我如何让Jenkins签出“test-1.1”(或任何其他)分支并保持正确的散列,并保留对其相应远程分支的引用?我可以编写一个shell脚本,但是还有其他方法可以解决这个问题吗?

Jenkins 1.544,使用Git 2.0插件,CentOS 6.4。

2 个答案:

答案 0 :(得分:1)

正如其他人已经说过的,Jenkins git插件有自己管理克隆和分支的方式。但它确实有效。如果要构建分支test-1.1,请将其键入Jenkins作业配置并停止担心。构建完成后,您可以从构建页面检查构建的提交的内容。如果这不是你所期望的,那么你应该担心。

(我认为git插件特性的原因在于它是如此多才多艺:它可以在多个存储库中构建多个分支。因此它不会检查分支,但它确实是从最新的提交构建的在你想要建立的分支中。)

如果您发现很难完全控制,您可以选择在没有SCM的情况下配置作业,然后您可以在构建步骤框中键入命令进行克隆和分支结帐。

答案 1 :(得分:0)

以下插件将帮助您参数化git-hub检查..请参阅下文 https://wiki.jenkins-ci.org/display/JENKINS/Git+Parameter+Plugin