2011-03-26 50 views
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) 

不過,如果我添加新的文件,他們得到了一個鉤子使用Git拉時錯誤的權限。它們只能由所有者讀取,而不能由組或其他用戶讀取。但我需要它們讓每個人都可讀。在本地他們有正確的許可位。即使我從shell手動運行鉤子,它也能正常工作。只有當腳本被稱爲鉤子時它才起作用。

任何想法如何解決這個問題?

PS:我使用Git 1.7

回答

8

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