Gitolite pode fazer isso por você. Não tem como você configurar isso com a configuração padrão do git.
Esta é minha primeira vez configurando um servidor git, então eu realmente não sei o que estou fazendo ainda. De qualquer forma, eu tenho uma configuração de servidor git com um usuário, o que eu quero é ter vários desenvolvedores que podem criar seus próprios ramos e empurrar os ramos para a origem, mas eu não quero que eles empurrar qualquer coisa para dominar; um administrador será mesclado após uma revisão de código. Isso é possível?
Gitolite pode fazer isso por você. Não tem como você configurar isso com a configuração padrão do git.
Se você não quiser usar o Gitolite, adicione isso ao seu update
hook:
[ "$1" != refs/heads/master ] || {
echo "ERROR: you are not allowed to update master" >&2
exit 1
}
Estendendo a resposta de Richard um pouco: Use o seguinte trecho como seu "hooks / update" e empurrando para master só será permitido ao usuário com o nome "git-repo-admin":
#!/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
Tags git