'git clone'尊重umask,顶级项目目录除外

时间:2012-05-17 14:14:47

标签: linux git permissions

我想克隆一个git项目(来自github,比方说),并让顶级目录可以按组写入。

我尝试了几件不同的事情。首先,只需在克隆之前设置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 git@github.com:user/repo.git
Cloning into repo... [succeeds]

但是克隆目录不能由组写入。

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

我尝试使用git init --shared=umask创建的repo(它应该已经是默认值)在具有775权限的目录中尝试相同的操作。推送到github后git clone得到相同的结果。

这不是一个大问题,我可以在我的结帐脚本中使用chmod。但如果有正确/内置的方法来做到这一点,那就更好了。 Git是Ubuntu 11.04上的1.7.4.1版本。

任何想法或链接都表示赞赏。我看到this post, but it uses chmod,我在这方面找不到其他的东西。谢谢!

2 个答案:

答案 0 :(得分:3)

尝试仅为克隆命令设置全局“core.sharedRepository = group”:

git -c "core.sharedRepository=group" clone git@github.com:user/repo.git
ls -ld repo/.git
drwxrwsr-x 8 user user 4096 Jul  4 22:16 repo/.git/

答案 1 :(得分:1)

这是由于一个错误,修复了git> = v1.7.11.3

请参阅: https://github.com/git/git/commit/45d4fdc2dc74c657a9c2e95bf04aed539fdcb0a4