2012-05-17 74 views
8

我想克隆一個git項目(例如github),並且頂級目錄可以按組寫入。'git clone'尊重umask,頂級項目目錄除外

我嘗試了一些不同的事情。首先,在克隆前設置umask。

$ umask 
0002 

文件創建中,然後通過組

$ touch test 
$ ls -l test 
-rw-rw-r-- 1 user group 0 2012-05-17 09:32 test 

寫現在,我嘗試git clone

$ git clone [email protected]:user/repo.git 
Cloning into repo... [succeeds] 

但克隆目錄不按組寫。

$ ls -ld repo 
drwxr-xr-x 11 user group 4096 2012-05-17 09:32 repo 

我想同樣的事情與775級權限的目錄與git init --shared=umask(這應該已經是默認的)創建的回購協議。推送到github後git clone獲得相同的結果。

這不是一個大問題,我可以在我的結帳腳本chmod。但是如果有權利/內建的方式來做到這一點,那就更好了。 Git是Ubuntu 11.04上的1.7.4.1版本。

任何想法或鏈接表示讚賞。我看到this post, but it uses chmod,我一直沒能找到這方面的其他內容。謝謝!

回答

2

嘗試將全球 「core.sharedRepository =組」 只爲克隆命令:

git -c "core.sharedRepository=group" clone [email protected]:user/repo.git 
ls -ld repo/.git 
drwxrwsr-x 8 user user 4096 Jul 4 22:16 repo/.git/ 
+0

Hey @ fork0,謝謝你的回覆。由於我的umask,我的.git目錄和所有的項目文件已經可以被羣組寫入。爲了澄清,我試圖讓項目頂層目錄是可寫組(即'ls -ld repo'會顯示'drwxrwxr-x')。設置'core.sharedRepository = group'與幕後的'git init --shared = group'完全相同,並且不會使頂層目錄成爲可寫的組。 –

+0

我明白了。不,它不是 – fork0

+0

所以是的,它沒有。我不認爲Git有這方面的任何內容,但讓我檢查... – fork0