我们正在通过文件路径访问一个共享的 git 存储库,出于各种原因我现在将忽略它,它是使用 --shared=group 创建的。
我们有各种 unix 组,但都共享一个公共(public)组。如果我在 git 存储库上运行 chgrp -R,每个人都可以从中读取,但如果有人更频繁地写入它,那么就会创建不使用公共(public)组的新文件。
这个问题似乎是因为我们的主要组不是共享组,如果我们运行 newgrp 似乎一切正常。
虽然这种方法存在问题; newgrp 很慢,它会生成一个新的 shell,这让我觉得在 .bash_profile 中调用它是个坏主意,甚至没有考虑我们是否希望所有我们的新文件使用普通组。不过,在执行任何 git 工作之前依靠内存来运行它似乎也是一场灾难。
那么……有什么建议吗?
最佳答案
可以使用以下命令将尚未使用 --shared
创建的现有存储库变为共享:
# make the repository shared
git config core.sharedRepository group # or whatever other sharing option
# fix the setgid bit
find . -type d | xargs chmod g+s
# repair the permissions
chmod -R g+r *
关于git - 如何在 git 存储库上正确使用组文件权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4832346/