有什么方法可以从Git commit-msg
钩子访问提交作者信息(作者姓名和电子邮件)?
我需要阻止没有正确电子邮件地址的提交(例如my.name@company.com
)。我可以在服务器端使用pre-receive
挂钩或update
挂钩执行此操作,但有没有办法在客户端执行相同的操作?
当然,我可以跑
git log -1 HEAD
在post-commit
挂钩并解析输出,但已经太晚了,因为在那个阶段已经创建了提交。它只能作为推动失败的友好警告。
答案 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