预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

4.8服务器上的Git-Gitolite Gitolite 本节作为Gitolite的一个快速指南,指导基本的安装和设置。不能完全替代随Gitolite自带的大量文档。而且可能会随时改变本节内容,因此你也许想看看最新的版本。 Gitolite是在Git之上的一个授权层,依托sshd或者httpd来进行认证。(概括:认证是确定用户是谁,授权是决定该用户是否被允许做他想做的事情)。 Gitolite允许你定义访问许可而不只作用于仓库,而同样于仓库中的每个branch和tagname。你可以定义确切的人(或一组人)只能push特定的"refs"(或者branches或者tags)而不是其他人。 安装 安装Gitolite非常简单,你甚至不用读自带的那一大堆文档。你需要一个unix服务器上的账户;许多linux变种和solaris10都已经试过了。你不需要root访问,假设git,perl,和一个openssh兼容的ssh服务器已经装好了。在下面的例子里,我们会用git账户在gitserver进行。 Gitolite是不同于“服务”的软件--其通过ssh访问,而且每个在服务器上的userid都是一个潜在的“gitolite主机”。我们在这里描述最简单的安装方法,对于其他方法,请参考其文档。 开始,在你的服务器上创建一个名为git的用户,然后以这个用户登录。从你的工作站拷贝你的SSH公钥(也就是你用ssh-keygen默认生成的~/.ssh/id_dsa.pub文件),重命名为<yourname>.pub(我们这里使用scott.pub作为例子)。然后执行下面的命令: $gitclonegit://github.com/sitaramc/gitolite $gitolite/install-ln #assumes$HOME/binexistsandisinyour$PATH $gitolitesetup-pk$HOME/scott.pub 最后一个命令在服务器上创建了一个名为gitolite-admin的Git仓库。 最后,回到你的工作站,执行gitclonegit@gitserver:gitolite-admin。然后你就完成了!Gitolite现在已经安装在了服务器上,在你的工作站上,你也有一个名为gitolite-admin的新仓库。你可用通过更改这个仓库以及推送到服务器上来管理你的Gitolite配置。 定制安装 默认快速安装对大多数人都管用,还有一些定制安装方法如果你用的上的话。一些设置可以通过编辑rc文件来简单地改变,但是如果这个不够,有关于定制Gitolite的文档供参考。 配置文件和访问规则 安装结束后,你切换到gitolite-admin仓库(放在你的HOME目录)然后看看都有啥: $cd~/gitolite-admin/ $ls conf/keydir/ $findconfkeydir-typef conf/gitolite.conf keydir/scott.pub $catconf/gitolite.conf repogitolite-admin RW+=scott repotesting RW+=@all 注意"scott"(之前用gl-setup命令时候的pubkey名稱)有读写权限而且在gitolite-admin仓库里有一个同名的公钥文件。 添加用户很简单。为了添加一个名为alice的用户,获取她的公钥,命名为alice.pub,然后放到在你工作站上的gitolite-admin克隆的keydir目录。添加,提交,然后推送更改。这样用户就被添加了。 gitolite配置文件的语法在conf/example.conf里,我们只会提到一些主要的。 你可以给用户或者仓库分组。分组名就像一些宏;定义的时候,无所谓他们是工程还是用户;区别在于你使用“宏”的时候 @oss_repos=linuxperlrakudogitgitolite @secret_repos=fenestrapear @admins=scott @interns=ashok @engineers=sitaramdilbertwallyalice @staff=@admins@engineers@interns 你可以控制许可在”ref“级别。在下面的例子里,实习生可以push”int“分支。工程师可以push任何有"eng-"开头的branch,还有refs/tags下面用"rc"开头的后面跟数字的。而且管理员可以随便更改(包括rewind)对任何参考名。 repo@oss_repos RWint$=@interns RWeng-=@engineers RWrefs/tags/rc[0-9]=@engineers RW+=@admins