![如何让多个用户可以访问 git 服务器?](https://linux22.com/image/129543/%E5%A6%82%E4%BD%95%E8%AE%A9%E5%A4%9A%E4%B8%AA%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%20git%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我已经设置了一个 git 服务器,但是用户推送他们的提交时遇到了一些问题。我总共有 3 个用户,但如果其中任何一个用户推送某些文件,这些文件对于其他用户来说将变为只读,并且如果他们尝试推送,解包器就会失败。
我可以通过递归设置所有权限来临时解决这个问题,777
但这是一个糟糕的方法,只能在下一次推送之前修复它。
我怎样才能使所有选定的用户都可以推送和拉取,而不必每次都更改权限?
答案1
创建您的存储库与git init --shared
,这将:
指定 Git 存储库在多个用户之间共享。这允许属于同一组的用户推送到该存储库。指定后,将设置配置变量“core.sharedRepository”,以便
$GIT_DIR
使用请求的权限创建其下的文件和目录。
将所有应具有写入权限的用户放入同一组中,Git(包括各种 SSH 和智能服务器元素)将创建文件 group-writable 和g+sx
.您可能想要创建一个特殊的组来用于该组及其chgrp -R
存储库。
这还将启用receive.denyNonFastForwards
存储库上的设置,您可以根据需要手动禁用该设置。