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

问题描述 投票:1回答:1

Setup

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

我的工作计算机使用NFS文件系统,并且每个defaut组中的每个人都具有读取权限。

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

我的大学使用/path/to/home进行远程配置

The problem

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

这样,我的学院就无法从我的存储库中获取并获得奇怪的错误消息。

The question

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

git
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.