2011-08-16 43 views
15

設置的umask我已成立了Git和Gitolite,並在某些時候我記得有見過「的umask」設置,在配置文件中的一個。這是否設置了我使用Git同步的所有文件的權限?這正是我需要的。我在哪裏可以找到它?Git中/ Gitolite

回答

20

umask settings in Gitolite有沒有改變新創建的回購協議的umask(而不是有關這些回購的版本管理的文件)。
gitolite.rc doc

$REPO_UMASK,八進制,默認0077

默認UMASK是gitolite使用,使所有的回購及其內容有rwx------權限。那些想運行gitweb的人意識到這是行不通的。

來處理這個正確的方法是給此變量的值一樣0027(注意語法:需要領導0),然後讓用戶在運行Web服務器(Apache的,www-data,等等)中的一員'git'組。

如果您已經安裝了gitolite,那麼現有的文件將不得不手動解決(對於umask或0027,那將是chmod -R g+rX)。這是因爲umask僅影響新創建文件的權限,而不是現有文件。

這個設置是一個類似於使用時可以直接創建一個混帳回購協議(不gitolite):

core.sharedRepository 

group(或true),該庫是多個用戶之間進行共享在一個組中(確保所有的文件和對象都是組寫的)。
all(或worldeverybody),存儲庫將是所有用戶可讀,除了group-shareable
umask(或false),GIT中將使用由umask報告的權限。

另請參閱「How do I share a Git repository with multiple users on a machine?」瞭解更多。

當您在相對於權限的平臺之間發生衝突時,還可以選擇「instruct git to ignore file permissions changes」(git config core.fileMode false)。

更新:本答案涵蓋了gitolite 2.使用gitolite 3,設置從$REPO_UMASK更改爲$UMASK