【问题标题】:Git Post Commit hooks to find name of branchGit Post Commit 挂钩以查找分支名称
【发布时间】:2015-06-22 19:16:09
【问题描述】:

我想创建一个提交后挂钩,通过它我需要向提交开发人员发送一个通知,即推送的分支不符合我们的命名约定。所以我想知道的是:

  1. 如何读取推送的分支名称
  2. 如何检查分支名称是否遵循特定模式,例如“origin/name/issueid”

我们想在他们的分支不遵循命名约定时通知用户。

【问题讨论】:

  • 您需要接收后退出。

标签: git github githooks post-commit


【解决方案1】:
  1. 假设您决定采用 jthill 的 post-receive 路线 建议您查看此答案以获取分支名称: https://stackoverflow.com/a/13057643/1504372。还有其他解决方案 根据您的具体情况,可能更合适 情况。这是官方文档: http://git-scm.com/docs/githooks。 (首先尝试echo$1oldrev 来了解您可以使用的内容。)
  2. 您的第二个问题需要正则表达式。 http://www.itworld.com/article/2693361/unix-tip-using-bash-s-regular-expressions.html

(元评论:人们可能会否决这个帖子,因为它看起来不像你试图自己解决它。如果你发布关于什么不起作用的帖子,你会有更好的运气,最好是代码/输出/错误消息。通过这种方式,您还将获得更精确的帮助,此时您的问题的完整答案基本上需要自己编写整个钩子。这当然只是我的看法,请随意忽略。: -))

【讨论】:

  • “此时要完整回答您的问题,基本上需要我自己编写整个钩子。”这正是我们对此类问题投反对票的原因,因为缺乏上下文会营造一种“为我做”的氛围,这对审稿人不利,对未来有问题的搜索者也没有多大帮助!
【解决方案2】:

此代码将在 git hooks 的 post-commit 中编写 即 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 2019-11-09
    • 2011-11-16
    • 2019-11-20
    • 1970-01-01
    • 2014-02-10
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多