如何在分离的HEAD状态下找到当前的git分支
通过执行以下任一操作,我可以找到当前的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更强的人可能有更漂亮的解决方案?
回答:
更瓷器的方式:
git log -n 1 --pretty=%d HEAD# or equivalently:
git show -s --pretty=%d HEAD
裁判将以格式列出(HEAD, master)
-如果您打算在脚本中而不是供人类使用,则必须对其进行一些解析。
您还可以自己更干净地实现它:
git for-each-ref --format='%(objectname) %(refname:short)' refs/heads | awk "/^$(git rev-parse HEAD)/ {print \$2}"
这样做的好处是可以将候选引用放在单独的行中,而无需多余的字符。
以上是 如何在分离的HEAD状态下找到当前的git分支 的全部内容, 来源链接: utcz.com/qa/420333.html