我使用一个裸存储库,多个开发人员可以推送.
正如所建议的,我曾经sharedRepository = true告诉git给一组用户提供推送权限.
当我想添加按钮时,我只需将它们添加为辅助组(sudo adduser the_pusher the_required_group)
当devs推送时,我看到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
...
Run Code Online (Sandbox Code Playgroud)
如您所见,附加组是主要组 pusher1
我怎样才能使用git来附加这些对象the_required_group呢?
更新
我在ssh上使用git.每个开发者都有自己的ssh帐户.
我有一个 git 存储库,与几个开发人员共享。我们使用它定期进行 git pull 和 push。不幸的是,每次我执行 git pull 更改的文件时,都会失去组写入权限。我如何阻止 git 这样做?
我在 Ubuntu 12.04 LTS 上运行它。
共享存储库上的配置如下所示:
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedRepository = group
Run Code Online (Sandbox Code Playgroud)
我还在它上面运行了以下命令以试图修复它
find repo.git -type d -exec chmod g+rws {} +
sudo chmod -R g+rw repo.git/objects
Run Code Online (Sandbox Code Playgroud)
不管我最终得到 755 的文件夹和 644 的文件,当我分别想要 775 和 664 时。