我的工作计算机上有一个git存储库,笔记本电脑上有一个克隆。我把git config receive.denyCurrentBranch
设为updateInstead
。这样我可以从我的笔记本电脑推送到我的工作电脑,git自动更新我工作目录中的本地文件。
我的工作计算机使用NFS文件系统,并且每个defaut组中的每个人都具有读取权限。
在我的笔记本电脑上,我有配置username@computer:/home/path/to/git
的遥控器
我的大学使用/path/to/home
进行远程配置
每当我推送到这个非裸存储库时,.git文件夹(.git/refs/heads/master
,.git/objects/...
)中的更新文件将获得我的读取权限,但不会获得该组的读取权限。默认情况下,在推送之前,他们也拥有该组的读取权限。
这样,我的学院就无法从我的存储库中获取并获得奇怪的错误消息。
是否有一些设置可以更改以改变此行为?这是预期的行为吗?或者除了向git开发人员提交错误/功能请求之外,没有解决方案吗?
远程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