使用Gitolite搭建Git服务器

运行环境

  • Ubuntu18.04
  • Gitolite

1. 在云服务上选择合适的镜像, 创建好实例

2. 启动实例更新系统

sudo apt update
sudo apt upgrade

3. 安装 Vim

sudo apt install vim

4. 安装 Git

sudo apt install git

5. 创建用户

  • 创建git用户: sudo adduser git
  • 切换到git用户: su git
  • 进入git用户目录: cd ~

6. 安装 Gitolite

git clone https://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin

7. 注册仓库管理员

  • 新建YourName.pub文件,将客户端公钥.ssh/id_rsa.pub复制到里面,然后注册为仓库管理员

      vim YourName.pub
      # 复制客户端公钥内容,按:wq保存退出
      $HOME/bin/gitolite setup -pk YourName.pub # 注册仓库管理员

    建议在服务器上新建admin用户作为仓库管理员

  • 新建管理员用户admin

     sudo adduser admin
  • 生成SSH公钥

     su admin
     ssh-keygen -t rsa -C "youremail@example.com"
     cp .ssh/id_rsa.pub /tmp/admin.pub
  • 切回git用户,将admin用户注册为仓库管理员

      su git
      cd ~
      $HOME/bin/gitolite setup -pk /tmp/admin.pub

    注册管理员后会生成两个文件projects.list, repositories/
    projects.list 保存仓库信息列表
    repositories/ 文件夹里有管理员仓库gitolite-admin.git/ 和测试仓库testing.git/
    新建的仓库都会保存在repositories/ 文件夹中

8. 管理远程仓库

  • 在已经注册过的客户端克隆管理员仓库

      git clone git@host:gitolite-admin

    管理员仓库里有两个文件conf/gitolite.confkeydir/
    gitolite.conf 管理仓库信息
    keydir/ 保存git成员的公钥

  • 添加新成员: 将新成员的公钥保存到keydir/

  • 新建仓库

    修改conf/gitolite.conf 文件,添加newrepo仓库

      repo gitolite-admin
              RW+     =   admin
    
      repo testing
              RW+     =   @all
    
      repo newrepo
              RW+     =   @all
  • 添加仓库管理员

      repo gitolite-admin
          RW+     =   admin
          RW+     =   lin-zone
    
      repo testing
          RW+     =   @all
    
      repo newrepo
          RW+     =   @all

9. 将仓库信息推送到服务器

在客户端更新完仓库信息后,需要将其推送到服务器才能生效

git add .
git commit -m "commit message"
git push origin master

参考

sitaramc/gitolite


  TOC