Jenkins --- checkout scm 拉取代码会导致 Git 处于“分离头指针” (detached HEAD)状态的解决方案
情况说明
jenkins checkout scm 会导致处于“分离头指针”状态,继而 springboot 的 Git-Commit-Id-Plugin插件生成的 git.properties 的分支名称为提交的hash 值
Jenkins 在 Pipeline 里执行 checkout scm, 它 checkout 的不是 origin/main、origin/dev,而是一个 具体提交的 hash
Git 就进入了 Detached HEAD(分离头指针) 状态
解决思路
不要让构建时的 Git 仓库处于 detached HEAD 状态
或者显式告诉插件当前分支是谁
不用改 git-commit-id-plugin 插件的配置
解决方案一
Jenkins checkout 后重新切回分支
1 | stage('Checkout') { |
解决方案二(推荐)
使用 Jenkins Git 插件的 LocalBranch
1 | checkout([ |