使用jenkins进行git多分支项目打包时的一个小问题
2019獨角獸企業重金招聘Python工程師標準>>>
前幾天給公司一個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
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的使用jenkins进行git多分支项目打包时的一个小问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML/CSS/动画
- 下一篇: CSS3 box flex 布局