错误的文件权限在

问题描述:

我已经创建了如下的git钩来更新我的web应用程序时,新的变化都推到仓库错误的文件权限在

#!/bin/sh 
#Update the server version to HEAD 

echo "Updating webapp..." 
unset $(git rev-parse --local-env-vars) 
(cd /var/www/webapp && git pull -q) 

不过,如果我添加新的文件,他们得到了一个钩子使用Git拉时错误的权限。它们只能由所有者读取,而不能由组或其他用户读取。但我需要它们让每个人都可读。在本地他们有正确的许可位。即使我从shell手动运行钩子,它也能正常工作。只有当脚本被称为钩子时它才起作用。

任何想法如何解决这个问题?

PS:我使用Git 1.7

Git不会存储权限,除了可执行位。因此,在结帐时,文件是使用默认权限创建的,这取决于您的umask

我想,当你手动调用钩子时,你有一个更*的umask集合。您可以用umask shell命令覆盖umask。为了您的目的,0022可能很好。

+1

在git pull完美运行之前,在shell脚本中设置'umask 0022'。谢谢! – joachim 2012-02-22 13:02:35

+0

谢谢!完美工作。 – nathancahill 2012-06-11 08:16:49