Git allows to create a shared repository amongs a group:
git --bare init --shared=group
However - how can I change already existing repository to shared? I don't want to re-git-init it.
Under your repository name, click Settings. In the "Access" section of the sidebar, click Collaborators & teams. Click Invite a collaborator. In the search field, start typing the name of person you want to invite, then click a name in the list of matches.
Specify that the Git repository is to be shared amongst several users. This allows users belonging to the same group to push into that repository. When specified, the config variable "core. sharedRepository" is set so that files and directories under $GIT_DIR are created with the requested permissions.
According to the documentation:
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]
Specify that the git repository is to be shared amongst several users. This allows users belonging to the same group to push into that repository. When specified, the config variable "core.sharedRepository" is set so that files and directories under
$GIT_DIR
are created with the requested permissions. When not specified, git will use permissions reported by umask(2).
Therefore, in order to change the permission, chmod
everything to your liking, and set the core.sharedRepository
in git config accordingly:
git config core.sharedRepository true
To make a private bare repo group shared:
sharedRepository = group
to the core
sectionchgrp -R target-group .
find . -type d | xargs chmod g+ws
find refs -type f | xargs chmod g+w
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With