githook - 在新的回购中获得branchname

时间:2018-06-07 16:26:39

标签: bash git githooks

我正在编写一个prepare-commit-msg挂钩,它将分支名称附加到commit msg。我使用这一行来获取分支名称

  local current_branch=$(git rev-parse --abbrev-ref HEAD)

问题是如果不存在先前的提交(当repo刚刚启动时),命令将失败,并显示以下错误消息

git rev-parse --abbrev-ref HEAD
HEAD
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.

是否有更好的方法来获取分支名称,或者抑制警告/错误?

2 个答案:

答案 0 :(得分:1)

git symbolic-ref --short HEAD

请参阅https://git-scm.com/docs/git-symbolic-ref

答案 1 :(得分:0)

这是一个罕见的罕见案例,它几乎不值得担心。您可以添加默认值,并禁止显示错误

$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "default branch")