9

我想克隆一个 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我在具有 775 权限的目录中使用(应该已经是默认值)创建的 repo 尝试了同样的事情。推送到 github 后git clone得到相同的结果。

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

任何想法或链接表示赞赏。我看到了这篇文章,但它使用 chmod,我在这方面找不到太多其他内容。谢谢!

4

2 回答 2

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/
于 2012-07-04T20:17:10.780 回答
1

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

见: https ://github.com/git/git/commit/45d4fdc2dc74c657a9c2e95bf04aed539fdcb0a4

于 2018-01-12T01:24:40.780 回答