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.
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")