2012-05-17 39 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