विलय @ दाऊद Underhill और @kixorz जवाब, मैं अपने ही (निश्चित) समाधान कर दिया।
यह नंगे repos और गैर-नंगे repos के लिए है। उनके बीच केवल थोड़े अंतर हैं, लेकिन इस तरह से स्पष्ट है।
बेयर रिपॉजिटरी
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
कहाँ पे:
<repo.git>
आम तौर पर सर्वर (जैसे my_project.git/
) पर नंगे भंडार निर्देशिका है ।
<group-name>
git उपयोगकर्ताओं के लिए समूह का नाम है (उदाहरण के लिए उपयोगकर्ता )।
नॉन-बैर रिपॉजिटरी
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
कहाँ पे:
<project_dir>
.git
फ़ोल्डर युक्त प्रोजेक्ट डायरेक्टरी है ।
<group-name>
git उपयोगकर्ताओं के लिए समूह का नाम है (उदाहरण के लिए उपयोगकर्ता )।