Menggabungkan jawaban @David Underhill dan @kixorz , saya membuat solusi (definitif) saya sendiri.
Ini untuk repo telanjang dan repo non-telanjang . Hanya ada sedikit perbedaan di antara mereka, tetapi cara ini lebih jelas.
REPOSITORI BARE
cd <repo.git>/ # Enter inside the git repo
git config core.sharedRepository group # Update the git's config
chgrp -R <group-name> . # Change files and directories' group
chmod -R g+w . # Change permissions
chmod g-w objects/pack/* # Git pack files should be immutable
find -type d -exec chmod g+s {} + # New files get directory's group id
dimana:
<repo.git>
adalah direktori repositori kosong, biasanya di server (mis my_project.git/
.).
<group-name>
adalah nama grup untuk pengguna git (mis. pengguna ).
REPOSITORI NON-BARE
cd <project_dir>/ # Enter inside the project directory
git config core.sharedRepository group # Update the git's config
chgrp -R <group-name> . # Change files and directories' group
chmod -R g+w . # Change permissions
chmod g-w .git/objects/pack/* # Git pack files should be immutable
find -type d -exec chmod g+s {} + # New files get directory's group id
dimana:
<project_dir>
adalah direktori proyek yang berisi .git
folder tersebut.
<group-name>
adalah nama grup untuk pengguna git (mis. pengguna ).