如果用户名/电子邮件不正确,如何在客户端钩子中拒绝提交?

时间:2015-03-26 12:33:27

标签: git githooks

有什么方法可以从Git commit-msg钩子访问提交作者信息(作者姓名和电子邮件)?

我需要阻止没有正确电子邮件地址的提交(例如my.name@company.com)。我可以在服务器端使用pre-receive挂钩或update挂钩执行此操作,但有没有办法在客户端执行相同的操作?

当然,我可以跑

git log -1 HEAD

post-commit挂钩并解析输出,但已经太晚了,因为在那个阶段已经创建了提交。它只能作为推动失败的友好警告。

1 个答案:

答案 0 :(得分:2)

使用git var命令怎么样?例如:

$ export EMAIL="arkadiusz@stackoverflow.com"
$ git var GIT_AUTHOR_IDENT | grep -E -o "<.+>" | sed 's,<,,' | sed 's,>,,'
arkadiusz@stackoverflow.com
$ unset EMAIL
$ git var GIT_AUTHOR_IDENT | grep -E -o "<.+>" | sed 's,<,,' | sed 's,>,,'
ja@AMDC689

修改〜/ .gitconfig:

[user]
        email = a@a.a
$ git var GIT_AUTHOR_IDENT | grep -E -o "<.+>" | sed 's,<,,' | sed 's,>,,'
a@a.a