![如何设置服务器端 Git Hook 以向某些用户名授予主分支中的权限?](https://linux22.com/image/888318/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%20Git%20Hook%20%E4%BB%A5%E5%90%91%E6%9F%90%E4%BA%9B%E7%94%A8%E6%88%B7%E5%90%8D%E6%8E%88%E4%BA%88%E4%B8%BB%E5%88%86%E6%94%AF%E4%B8%AD%E7%9A%84%E6%9D%83%E9%99%90%EF%BC%9F.png)
我有一个 git 服务器。不是 gitlab 或类似的东西,而是裸 git 服务器。我想创建 git hook 来拒绝某些用户在主分支上的推送。我尝试使用下面的方法来实现这一点。
#!/bin/bash
if [ "$1" == refs/heads/master ];
then
CEMAIL=$(git log -1 --format=format:%ce HEAD)
echo $CEMAIL
if [ "$CEMAIL" != [email protected] ] && [ "$CEMAIL" != [email protected] ];
then
echo "-----------------------------------------------------"
echo "WARNING: You are not allowed to Push in MASTER branch !"
echo "-----------------------------------------------------"
exit 1
fi
fi
没有上述电子邮件的用户将无法在主分支上推送。但它并没有按预期工作。你们能指导我吗?
更新:当我 ([电子邮件保护])它将允许我推送到分支。然后,如果我要求除我和杰克之外的其他人推送到分支,它也会允许。它选择最后一个用户的电子邮件。