在Git / Gitolite中设置umask

15

我已经安装了Git和Gitolite,但是我记得在某个配置文件中看到过"umask"设置。这会设置使用Git同步的所有文件的权限吗?这正是我需要的。我应该在哪里找到它?

1个回答

22
在Gitolite中,umask设置可用于更改新创建的存储库的umask(与这些存储库版本管理的文件无关)。 请查看gitolite.rc文档: $REPO_UMASK是一个八进制数,默认值为0077。 Gitolite使用的默认UMASK使所有存储库及其内容具有rwx------权限。想要运行gitweb的人会意识到这是不可取的。 正确的处理方法是给此变量赋一个像0027这样的值(请注意语法:需要前导0),然后使运行Web服务器(Apache、www-data等)的用户成为'git'组的成员。 如果您已经安装了Gitolite,则现有文件必须手动修复(对于umask或0027,应为chmod -R g+rX)。这是因为umask仅影响新创建的文件的权限,而不影响现有文件的权限。 此设置类似于直接创建git存储库(而不使用Gitolite)时使用的设置。
core.sharedRepository
group(或 true)时,仓库可在组内多个用户之间共享(确保所有文件和对象均可由组进行写入)。当 all(或 worldeverybody)时,除了成为 group-shareable 之外,该仓库还将对所有用户开放读取权限。当 umask(或 false)时,Git 将使用 umask 报告的权限。请参见 "如何在一台机器上与多个用户共享 Git 代码库?" 获取更多信息。当你在不同平台之间存在权限冲突时,你也可以选择让 Git 忽略文件权限更改,具体方法请参阅 "如何配置 Git 以忽略文件权限更改" (git config core.fileMode false)。更新:本答案适用于 gitolite 2。对于 gitolite 3,设置已从 $REPO_UMASK 更改为 $UMASK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接