我在工作计算机上有一个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开发人员提交错误/功能请求外,没有其他解决方案吗?
答案 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