预推Git挂钩以确定分支名称是否有效

时间:2015-04-01 20:40:06

标签: git bash

我想写一个Bash脚本来测试一个带有Git预推钩的分支名称的正则表达式。我已经阅读了预推文档,但是我无法将钩子插入到我的应用程序中。任何人都有任何建议。

local_branch = $(git rev-parse --abbrev-ref HEAD)
valid_chars = $(^[a-z0-9-]+$)

if [[ "$local_branch" =~ valid_chars]]; then
  echo 'Failed to push.  Branch is using incorrect characters.  Valid        Characters are lower case (a-z), numbers (0-9) and dashes(-).  Please rename branch to continue'
  exit 1
fi

exit 0

1 个答案:

答案 0 :(得分:3)

运行上面的脚本会导致各种错误。我也不确定你为什么要执行^[a-z0-9-]+$并将结果存储在valid_chars中。尽管如此:

  • 如果分支名称与正则表达式
  • 不匹配,您可能希望退出并显示错误
  • 您在测试中错过$的{​​{1}}前缀
  • valid_chars应在if [[ "$local_branch" =~ valid_chars]]; then
  • 中包含空格

与往常一样,确保脚本位于]]下,名称正确,并标记为可执行。

下面的内容适用于我(我已将示例挂钩评论留在原因,因为我很懒):

.git/hooks/pre-push