Hợp nhất câu trả lời @David Underhill và @kixorz , tôi đã đưa ra giải pháp (dứt khoát) của riêng mình.
Nó dành cho repo trần và repo không trần . Chỉ có sự khác biệt nhỏ giữa chúng, nhưng theo cách này thì rõ ràng hơn.
BÁO CÁO 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
Ở đâu:
<repo.git>
là thư mục kho lưu trữ trống, thường là trên máy chủ (ví dụ my_project.git/
).
<group-name>
là tên nhóm cho người dùng git (ví dụ người dùng ).
BỆNH VIỆN KHÔNG CHĂM SÓC
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
Ở đâu:
<project_dir>
là .git
thư mục dự án chứa thư mục.
<group-name>
là tên nhóm cho người dùng git (ví dụ người dùng ).