Git Post Commit钩子找到分支

时间:2015-06-22 19:16:09

标签: git github githooks post-commit

我想创建一个post commit钩子,通过它我需要向提交的开发人员发送一个通知,推送的分支不遵循我们的命名约定。所以我想知道的是:

  1. 如何阅读推送的分支名称
  2. 如何检查分支名称是否遵循某种模式,如“origin / name / issueid”
  3. 我们希望在用户的分支不符合命名约定时通知用户。

2 个答案:

答案 0 :(得分:1)

  1. 假设你决定去jthill的接收后路线 建议您查看此答案以获取分支名称: https://stackoverflow.com/a/13057643/1504372。还有其他解决方案 那可能更合适,具体取决于您的具体情况 情况。这是官方的doco: http://git-scm.com/docs/githooks。 (首先尝试echo $1oldrev,以了解您可以使用的内容。)
  2. 您的第二个问题需要正则表达式。 http://www.itworld.com/article/2693361/unix-tip-using-bash-s-regular-expressions.html
  3. (元评论:人们可能会对这篇文章进行投票,因为它并不像你试图自己解决的那样。如果你发布了什么&#,你会有更好的运气39; s不工作,最好是代码/输出/错误消息。你也可以通过这种方式获得更精确的帮助,此时对你的问题的完整答案基本上需要自己编写整个钩子。这当然是只是我的看法,随意忽略。:-))

答案 1 :(得分:0)

此代码将在git钩子提交后编写 即vim .git / hooks / post-commit

if git branch --show current | grep developer
then
        echo " i am developer"
        git push -u origin developer
else
        echo "i am master"
        git push -u origin master
fi

如果开发人员执行了提交,则以上代码将推送到开发人员分支,否则推送到master分支。 在我的git中,我有两个分支: -master(主分支) -developer(功能分支)