您的位置:首页 > 其它

使用jenkins进行git多分支项目打包时的一个小问题

2015-05-13 16:25 627 查看
前几天给公司一个git项目创建了一个分支。原来的分支为"branchA",新的分支是"branchB",相应的在jenkins中部署任务分别是"jobA"和"jobB"。

在执行jobB成功后,进行jobA不能进行分支切换,尝试在构建前使用"execute shell"执行脚本,git checkout 到branchA。开始以为问题解决了,但是在branchA提交了几个commit后进行jobA部署。出现问题,jenkins在git取代码时总是取的branchB。我明明在构建前的脚本里指定了"git checkout branchA"。

查看jenkins部署日志取代码的部分。

<pre>
> git rev-parse --is-inside-work-tree
Fetching changes from the remote Git repository
> git config remote.origin.url ssh://gerrit/project
Fetching upstream changes from ssh://gerrit/project
> git --version
> git fetch --tags --progress ssh://gerrit/tms-provider +refs/heads/*:refs/remotes/origin/*
> git rev-parse FETCH_HEAD^{commit}
Checking out Revision 4b640f***** (branchA)
> git config core.sparsecheckout
> git checkout -f 4b640f****
> git rev-parse FETCH_HEAD^{commit}
> git rev-list 87cce3***
</pre>

我在本地的git历史中可以看到当前branchA的最新commit是dba05****,而构建服务器上执行fetch后的FETCH_HEAD指向的确实另一个分支branchB的最新commit。(不明白为什么会总指向另一个分支的commit,有熟悉git的同学可以交流指导下啊。)

当然修改还是比较容易的,在fetch的时候直接指定具体引用,这样在fetch代码时就会只fetch指定分支的了。
Refspec:+refs/heads/branchname:refs/remotes/origin/branchname

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git jenkins
相关文章推荐