【发布时间】:2011-08-28 21:30:21
【问题描述】:
我可以通过以下任一方式找到当前的 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 更强大的人可能有更漂亮的解决方案?
【问题讨论】:
-
“current git branch [...] in detached HEAD” – Detached HEAD 表示没有当前分支,那么你要查找哪个分支?
-
@poke:OP 的例子很清楚他在寻找什么。
-
@Jefromi:我知道,但是要求一些东西并通过一个已经有效的解决方案来定义它不是一个好主意。不是每个人都能读懂,看看会产生什么样的结果..
-
@poke:我不只是要求一个可行的解决方案,我要求找到匹配分支的 最简单的方式(或“git 方式”?)姓名。
标签: git bash jenkins branch travis-ci