我的服务器上有一个git远程仓库。 每次我将本地分支推送到服务器时,〜/对象中的文件只具有我特定帐户的rw权限(不是我的组 - git)。 因此,当我的朋友对〜/对象中的那些文件进行推送时,他会收到权限许可错误。
Hes在同一组:git,但当然没有写权限(因为组git没有)
如何告诉git为这些文件提供整个git-group的正确权限?
感谢您的帮助。
_christoph
答案 0 :(得分:16)
- core.sharedRepository
当group(或true)时,存储库可以在组中的多个用户之间共享(确保所有文件和对象都是可写组的)。 [...]
在服务器上执行此操作:
配置存储库以进行组共享 这将有效地强制扩展umask以用于未来的Git操作。
cd /path/to/repository.git
git config core.sharedRepository group
清理现有权限:
chgrp -R git .
chmod -R g=u .
强制组所有者继承新条目(在BSD风格的系统上不需要,但在其他系统上通常需要):
find . -type d -print0 | xargs -0 chmod g+s
答案 1 :(得分:1)
我建议您在连接到您运行的远程repo服务器时让开发人员使用通用用户帐户。您可以通过SSH密钥管理访问权限,因此您不必担心分发/共享密码等。
如果您想坚持使用单独的用户帐户,那么这个问题在serverfault得到了很好的回答: https://serverfault.com/questions/26954/how-do-i-share-a-git-repository-with-multiple-users-on-a-machine
您可能希望使用gitosis来运行您自己的repo: http://eagain.net/gitweb/?p=gitosis.git
良好的gitosis设置说明可在http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way获得。