5

当新的更改被推送到存储库时,我创建了以下 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)

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

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

PS:我使用的是 git 1.7

4

1 回答 1

8

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

我想,当你手动调用钩子时,你有一个更自由的 umask 集。umask您可以使用shell 命令覆盖 umask 。出于您的目的,0022 可能没问题。

于 2011-03-26T15:04:14.353 回答