首页 > 解决方案 > 如何限制推送到分支?

问题描述

我们有 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. 第二个条件看起来很好,但名称条件不是......

谁知道是什么问题?也许我需要与用户邮件进行比较?或者是其他东西?

随意问

标签: git

解决方案


git没有任何用户的概念。无论您使用什么协议推送到远程$USER,服务器端都在该用户下git运行。例如,如果您像这样推送,git push git@remote-server/repo.git$USER始终是git

如果你想要基于用户的分支保护,你需要安装一些具有用户概念的东西——gitolite、github、gitlab 等


推荐阅读