【发布时间】:2017-12-27 14:24:45
【问题描述】:
我想在项目的构建过程中将当前的 git 分支添加到属性中。
我的项目可以在本地构建,也可以使用 Jenkins。当项目在本地构建时,这非常简单,我定义了以下任务以成功获取分支:
task getBranch {
def cmd = "git rev-parse --abbrev-ref HEAD"
def proc = cmd.execute()
def branch = proc.text.trim()
ext.branch = branch
}
但是,Jenkins 构建过程的一部分涉及将分支上的最后一次提交检出到自己的分支中,从而使项目处于分离的头部状态:
commit_hash=${git rev-parse refs/remotes/origin/BRANCH^{commit}}
git checkout -f ${commit_hash}
此时我可以运行git reflog show -n1 来获取:
HEAD@{0}: checkout: moving from BRANCH to $commit_hash
我将不得不编写一些groovy 代码来从该格式的字符串中获取 BRANCH 的值。但是,我想知道是否有更直接的方法可以从 git 获取 BRANCH?
【问题讨论】: