git阻止推送到主人

Joh*_*ong 3 git

这是我第一次设置 git 服务器,所以我真的不知道我在做什么。无论如何,我有一个用户的 git 服务器设置,我想要的是有多个开发人员可以创建自己的分支并将分支推送到原点,但我不希望他们推送任何东西来掌握;管理员将在代码审查后合并。那可能吗?

Ric*_*sen 8

如果您不想使用 Gitolite,请将其添加到您的update钩子中:

[ "$1" != refs/heads/master ] || {
    echo "ERROR:  you are not allowed to update master" >&2
    exit 1
}
Run Code Online (Sandbox Code Playgroud)


小智 5

稍微扩展一下 Richard 的答案:使用以下代码段作为您的“钩子/更新”,并且只允许名为“git-repo-admin”的用户推送到 master:

#!/bin/sh
if [ $USER != "git-repo-admin" ];
then
  if [ "$1" == refs/heads/master ];
  then
    echo "Manual pushing to this repo is restricted"
    exit 1
  fi
fi
Run Code Online (Sandbox Code Playgroud)