使用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
在执行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
相关文章推荐
- 使用VS进行打包程序解决生成两个文件的问题(压缩后只有一个exe)
- 使用ant对项目进行多渠道打包时遇到问题记录
- 使用Ant自动打包项目遇到的一个问题,备案!
- 深入springMVC------文件上传源码解析(上篇) 最近在项目中,使用springmvc 进行上传文件时,出现了一个问题: org.springframework.web.multipart
- 使用瓦力部署使用git进行版本控制的thinkphp5项目到Linux服务器遇到的问题
- 使用maven工具对maven项目进行打包所出现的问题
- 关于Jenkins使用Gradle对android项目打包遇到的问题总结
- github使用(通过webstorm创建一个nodejs项目的本地git库,推送到github进行管理,(ssh密钥无用户密码方式))
- Eclipse下使用git向一个分支同时推送多个项目
- 在Intellij idea里使用Maven构建一个webapp骨架项目解决一直downloading问题
- 在Intellij idea里使用Maven构建一个webapp骨架项目解决一直downloading问题
- 使用git命令行进行项目合并
- 使用maven-war-plugin 对Maven项目进行动态打包
- git 利用分支概念实现一个仓库管理两个项目
- Github使用Git命令完成项目的上传、修改及合并分支
- 使用maven-war-plugin 对Maven项目进行动态打包
- 完整教程--idea使用git进行项目管理
- 使用git将项目上传到github 以及解决“git commit -m”初始化问题
- 最近需要使用jenkins 进行项目集成管理——1
- 使用eclipse导入git项目的系列问题的解决