将GIT存储库更改为共享

Voj*_*ěch 15 git bash

Git允许在一个组中创建一个共享存储库:

git --bare init --shared=group
Run Code Online (Sandbox Code Playgroud)

但是 - 如何将现有存储库更改为共享?我不想重新git-init它.

Ela*_*ich 15

根据文件:

--shared [=(假|真|的umask |组|全部|世界|人人| 0XXX)

指定git存储库将在多个用户之间共享.这允许属于同一组的用户进入该存储库.指定时,将设置配置变量"core.sharedRepository",以便$GIT_DIR使用所请求的权限创建下面的文件和目录.未指定时,git将使用umask(2)报告的权限.

因此,为了更改权限,chmod一切都符合您的喜好,并相应地设置core.sharedRepository在git配置中:

git config core.sharedRepository true
Run Code Online (Sandbox Code Playgroud)


Jan*_*ker 10

要共享私有裸仓库组:

  1. 编辑配置并添加sharedRepository = group到该core部分
  2. 修复repo内部的权限:
    • chgrp -R target-group .
    • find . -type d | xargs chmod g+ws
    • find refs -type f | xargs chmod g+w

  • 它说`sharedRepository = group`,*not*`sharedRepository = mygroup`,即,这不是你正在使用的组,但总是`group`.您正在使用的组是示例中的"目标组".如果您以足够的权限运行它们,这些命令肯定适用于任何类Unix操作系统. (4认同)