推送到非裸存储库后,.git文件夹中的文件具有错误权限(receive.denyCurrentBranch updateInstead)

时间:2018-09-18 10:49:07

标签: git

设置

我在工作计算机上有一个git存储库,在笔记本电脑上有一个克隆。 我将git config receive.denyCurrentBranch设置为updateInstead。 这样,我就可以从笔记本电脑推送到我的工作计算机,并且git自动更新我工作目录中的本地文件。

我的工作计算机使用NFS文件系统,默认情况下,组中的每个人都具有读取权限。

在笔记本电脑上,我为遥控器配置了username@computer:/home/path/to/git

我的大学使用/path/to/home

配置了远程设备

问题

每当我推送到这个非裸露的存储库时,.git文件夹(.git/refs/heads/master.git/objects/...)中的更新文件都会获得我的读取权限,但不会获得该组的读取权限。默认情况下,在推送之前,他们也对该群组具有读取权限。

通过这种方式,我的大学无法从我的资源库中获取奇怪的错误消息。

问题

是否可以更改某些设置来更改此行为? 这是预期的行为吗? 还是除了向git开发人员提交错误/功能请求外,没有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

远程URL username@computer:/home/path/to/git表示您使用SSH,而不是NFS。您需要在服务器端配置umask;尝试在工作计算机上的/home/username/.bash_profile中对其进行编辑。

还建议您设置

git config core.sharedRepository 0640

在共享存储库中,使git使用此固定的umask而不是用户的umask

请参见https://git-scm.com/docs/git-config#git-config-coresharedRepository