我可以通过执行以下任一操作找到当前的git分支名称:
git branch | awk '/^\*/ { print $2 }'
git describe --contains --all HEAD
Run Code Online (Sandbox Code Playgroud)
但是当处于分离的HEAD状态时,例如在Jenkins maven构建中的后构建阶段(或在Travis git fetch中),这些命令不起作用.
我目前的工作解决方案是:
git show-ref | grep $(git log --pretty=%h -1) | sed 's|.*/\(.*\)|\1|' | sort -u | grep -v HEAD
Run Code Online (Sandbox Code Playgroud)
它显示在其HEAD提示上具有最后一次提交的任何分支名称.这很好,但我觉得有一个强大的git-fu的人可能有一个更漂亮的解决方案?
我试图让prebuild合并在multibranch管道中工作,我想避免在我的管道脚本中硬编码git url.
似乎scm step必须以某种方式存储url,但我无法弄清楚如何访问它.