git和repo环境搭建
jopen
11年前
cd ~/src git clone git://eagain.net/gitosis.git
Or try “git clone https://github.com/tv42/gitosis.git”
cd gitosis/ python setup.py install –prefix=$HOME cd
因为Git本身没有用户和权限管理的部分,多人协作开发必然涉及,用户管理和目录、文件权限的管理。目前实行的方式有如下两种。
第一种: 采用操作系统的用户和权限进行管理。
优点: 配置简单,只需要共享系统账号就可以了
缺点: 团队人员很多时维护麻烦
第二种:采用ssh进行用户管理只需要共用一个系统账号,其他用户通过公匙进行验证。权限通过第三方的gitosis或者gitolite进行管理。
gitolite是用Perl对gitosis的重写。
gitolite的功能:
只需要一个真实的系统用户
提供多用户访问git(不需要建真实的系统用户没有shell权限)
可以控制多个git库repo级别的读控制和branch/tag/file/directory的写控制,包括回退、新建、删除分支和tag的权限。
可以不用root用户安装
通常是使用sshd,你也可以使用http但这需要root权限。
gitolite和gitosis 在安装完成后都会在本地形成一个和本地相关的clone库,然后通过 git clone 本地库(本地),进行配置。
以下是经过验证的
gitolite的安装
- 创建ubuntu用户,通常都使用git作为用户名
sudo adduser git - 修改git的sudo权限
sudo vim /etc/sudoers
在root 下添加 git ALL=(ALL) ALLUser privilege specification
root ALL=(ALL) ALL
git ALL=(ALL) ALL - 切换到git用户
su git - 安装gitolite
sudo apt-get install gitolite - 生成ssh
ssh-keygen - 将git的注册为gitolite管理员账号
gl-setup .ssh/git.pub
7.克隆出gitolite-admin
git clone git@server :gitolite-admin 就可以进行管理了
总结:
可以不将git注册为gitolite管理员,可以通过上传其他机器的pub到服务器,或者将git的公匙和密匙拷贝到其他机器,就可以远程管理gitolite了