2014/4/25 16:06
它显示用户 scott— 初始化 Gitosis 公钥的拥有者 — 是唯一能管理gitosis-admin项目的人。
现在我们来添加一个新项目。为此我们要建立一个名为 mobile的新段落,在其中罗列手机开发团队的开发者,以及他们拥有写权限的项目。由于 'scott' 是系统中的唯一用户,我们把他设为唯一用户,并允许他读写名为iphone_project的新项目:
[group mobile]members = scottwritable = iphone_project
修改完之后,提交 gitosis-admin里的改动,并推送到服务器使其生效:
$ git commit -am 'add iphone_project and mobile group'[master 8962da8] add iphone_project and mobile group 1 file changed, 4 insertions(+)$ git push origin masterCounting objects: 5, done.Compressing objects: 100% (3/3), done.Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)To git@gitserver:gitosis-admin.git fb27aec..8962da8 master -> master
在新工程 iphone_project里首次推送数据到服务器前,得先设定该服务器地址为远程仓库。但你不用事先到服务器上手工创建该项目的裸仓库— Gitosis 会在第一次遇到推送时自动创建:
$ git remote add origin git@gitserver:iphone_project.git$ git push origin masterInitialized empty Git repository in /opt/git/iphone_project.git/Counting objects: 3, done.Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)To git@gitserver:iphone_project.git * [new branch] master -> master
过这次不用在服务器上一个一个手工添加到 ~/.ssh/authorized_keys文件末端,而只需管理keydir目录中的公钥文件。文件的命名将决定在gitosis.conf中对用户的标识。
然后把他们都加进 'mobile' 团队,让他们对 iphone_project具有读写权限: