我可以通过执行以下任一操作找到当前的 git 分支名称:
git branch | awk '/^\*/ { print $2 }'
git describe --contains --all HEAD
但是当处于分离的 HEAD 状态时,例如在Jenkins maven 构建(或 Travis git fetch)的构建后阶段,这些命令不起作用。
我目前的工作解决方案是这样的:
git show-ref | grep $(git log --pretty=%h -1) | sed 's|.*/\(.*\)|\1|' | sort -u | grep -v HEAD
它显示在其 HEAD 提示上具有最后一次提交的任何分支名称。这很好用,但我觉得 git-fu 更强大的人可能有更漂亮的解决方案?