我们有git repo的服务器实现。我想限制除我以外的所有人对仓库的分支之一的推送。
因此,我在.git/hooks/update
下添加了服务器git dir这样的脚本
#!/bin/sh
if [ "$USER" != "Aleksey" ] && [ "$1" == refs/heads/test_br ];then
echo "Manual pushing to this repo is restricted"
exit 1
fi
我看到条件"$USER" != "Aleksey"
始终为true
。第二个条件看起来工作良好,但名称条件不...
谁知道是什么问题?也许我需要与用户邮件进行比较?或者是其他东西?
随便问
答案 0 :(得分:0)
git
没有任何用户概念。无论您用来推送到远程$USER
的协议是运行服务器端git
的用户。例如,如果您像git push git@remote-server/repo.git
那样推,则$USER
总是 git 。
如果要基于用户的分支保护,则需要安装具有用户概念的内容-gitolite, github, gitlab, etc。