我可以通过以下任一方法找到当前的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的人可能会有更漂亮的解决方案?