5

我使用多个开发人员可以推送的裸存储库。

正如建议的那样,我曾经sharedRepository = true告诉 git 给一组用户推送的权限。

当我想添加推送器时,我只需将所需的组添加为辅助组 ( sudo adduser the_pusher the_required_group)

当开发人员推送时,我看到在objects使用良好权限而不是良好组创建的目录中创建的文件。

例子:

$ ls -l repository/objects
...
drwxrwsr-x 2 pusher1 pusher1 4096 janv.  7 14:13 fa
drwxrwsr-x 2 pusher1 pusher1 4096 déc.  26 15:29 fc
drwxrwsr-x 2 pusher1 pusher1 4096 déc.  11 12:41 fd
...

如您所见,附加组是pusher1

我怎样才能让 git 将这些对象附加到the_required_group呢?


更新

我在 ssh 上使用 git。每个开发人员都有自己的 ssh 帐户。

4

1 回答 1

3

我的团队通过s在存储库中的所有目录上设置选项来解决此问题,chmod 为此chownchgrp将文件和目录设置为正确的用户/组,然后chmod g+s是存储库中的所有内容。

+s导致新文件具有其父目录的组。取自man 2 chown

  • 如果使用 -o nogrpid 挂载文件系统并且在父目录上启用了 set-group-ID 位,则新文件的组与父目录的组相同。

另见,man chmodman 2 chmod

于 2013-01-07T13:53:29.893 回答