博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用jenkins进行git多分支项目打包时的一个小问题
阅读量:6489 次
发布时间:2019-06-24

本文共 1114 字,大约阅读时间需要 3 分钟。

hot3.png

前几天给公司一个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

在此输入图片描述

转载于:https://my.oschina.net/bfleeee/blog/414410

你可能感兴趣的文章
Windows XP Embedded 还原设置
查看>>
伪静态设置
查看>>
nginx常见模块的使用
查看>>
自定义颜色清屏
查看>>
Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑
查看>>
C#学习经典方法之(三)---String.Join方法
查看>>
Linux基础--RAID与LVM
查看>>
Sed学习笔记一
查看>>
=> Unit 与 () =>Unit的区别
查看>>
如何在域管理环境中进行软件的推送安装
查看>>
SoftReference,WeakReference&WeakHashMap
查看>>
Session
查看>>
Linux技术研究-基础篇(linux常用指令和权限管理)
查看>>
KeePass --开源密码管家使用手册
查看>>
嵌入式设备中支持国密算法的方法
查看>>
unary operator expected
查看>>
nagios图像(pnp4nagios)
查看>>
Oracle DML触发器
查看>>
Windows 2008 R2 安裝 PowerShell management Library for Hyper-V
查看>>
我的友情链接
查看>>