git和repo环境搭建

jopen 10年前

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的安装

  1. 创建ubuntu用户,通常都使用git作为用户名
    sudo adduser git
  2. 修改git的sudo权限
    sudo vim /etc/sudoers
    在root 下添加 git ALL=(ALL) ALL

    User privilege specification

    root ALL=(ALL) ALL
    git ALL=(ALL) ALL
  3. 切换到git用户
    su git
  4. 安装gitolite
    sudo apt-get install gitolite
  5. 生成ssh
    ssh-keygen
  6. 将git的注册为gitolite管理员账号
    gl-setup .ssh/git.pub
    7.克隆出gitolite-admin
    git clone git@server :gitolite-admin 就可以进行管理了
    总结:
    可以不将git注册为gitolite管理员,可以通过上传其他机器的pub到服务器,或者将git的公匙和密匙拷贝到其他机器,就可以远程管理gitolite了