gitpermissionsshareshared

How to configure an existing git repo to be shared by a UNIX group


I have an existing git repo (a bare one) which has up to this point only been writable by me. I want to open it up to some UNIX user group, foo, so that all members of foo can push to it. I'm aware that I can easily set up a new git repo with:

git init --bare --shared=group repodir
chgrp -R foo repodir

But I need the equivalent operation for an existing repo dir.


Solution

  • Try this to make an existing repository in repodir work for users in group foo:

    chgrp -R foo repodir                      # set the group
    chmod -R g+rw repodir                     # allow the group to read/write
    find repodir -type d -exec chmod g+s {} + # new files get group id of directory
    git init --bare --shared=all repodir      # sets some important variables in repodir/config ("core.sharedRepository=2" and "receive.denyNonFastforwards=true")