This is my first time setting up a git server, so I don't really know what I am doing yet. Anyways, I have a git server setup with a user, What I want is to have multiple developers that can create their own branches and push the branches to origin, but I don't want them to push anything to master; an admin will merge after a code review. Is that possible?

link|improve this question
feedback

3 Answers

up vote 3 down vote accepted

Gitolite can do this for you. There's no way for you to set this up with the default git setup.

link|improve this answer
feedback

If you don't want to use Gitolite, add this to your update hook:

[ "$1" != refs/heads/master ] || {
    echo "ERROR:  you are not allowed to update master" >&2
    exit 1
}
link|improve this answer
feedback

Extending the answer of Richard a bit: Use the following snippet as your "hooks/update" and pushing to master will only be allowed to the user with the name "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
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.