使用gitolite搭建Git服务器

运行环境

  • Ubuntu18.04

  • gitolite

搭建过程

  1. 安装好Ubuntu18.04系统

  2. 更新系统

    sudo apt update
    sudo apt upgrade
  3. 安装vim

    sudo apt install vim
  4. 安装git

    sudo apt install git
  5. 创建git仓库

    # 创建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

    添加仓库管理员username

    repo gitolite-admin
    RW+ = admin
    RW+ = username repo testing
    RW+ = @all repo newrepo
    RW+ = @all
  9. 将仓库信息推送到服务器

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

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

参考

sitaramc/gitolite

使用gitolite搭建Git服务器的更多相关文章

  1. 使用gitolite进行git服务器搭建

    使用gitolite进行git服务器搭建 https://blog.csdn.net/pan0755/article/details/78460941 使用gitolite搭建,然后需要有个客户端进行 ...

  2. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  3. 如何在服务器上搭建git服务器

    参考文章: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770 ...

  4. 自定义Git之搭建Git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  5. 轻松搭建Git服务器(Ubuntu)

    搭建Git服务器 在远程仓库节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业 ...

  6. CentOS搭建Git服务器及权限管理

    声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考. 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSS ...

  7. 在Centos7下搭建Git服务器

    ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clone 远程仓库 ⑤ 客户端创建 SSH 公钥和私 ...

  8. Git -- 搭建git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  9. Git_搭建Git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

随机推荐

  1. [TimLinux] myblog 首页创建

    1. 设计 2. 结构 3. 实现 templates/common/layout.html: <!DOCTYPE html> <html lang="zh"&g ...

  2. Python爬虫--喜马拉雅三国音频爬取

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Botreechan  1.进入地址我们可以发现,页面有着非常整齐的目 ...

  3. 【JS】388- 深入了解强大的 ES6 「 ... 」 运算符

    本文原载于 SegmentFault 社区 专栏:大前端  作者:皮小蛋 背景 ... 运算符,是 ES6 里一个新引入的运算法,也叫 展开/收集 运算符,我们每天都要和它打交道. 这篇文章,我就带你 ...

  4. 【Web技术】353- CDN 科普

    点击上方"前端自习课"关注,学习起来~ 一.概述 1.1 含义 CDN 的全称是 Content Delivery Network,即内容分发网络.CDN 是构建在网络之上的内容分 ...

  5. js中promise解决callback回调地狱以及使用async+await异步处理的方法

    1.callback回调地狱 function ajax(fn) { setTimeout(()=> { console.log('你好') fn() }, 1000) } ajax(() =& ...

  6. java项目测试环境搭建

    java项目测试环境搭建 2019-03-06 13:45:26 木瓜小少年 阅读数 691更多 分类专栏: 测试   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原 ...

  7. sendRedirect()和forward()方法有什么区别?

    forward是服务器内部的跳转,浏览器的地址栏不会发生变化,同时可以把request和response传递给后一个请求.sendRedirect()是浏览器方面的跳转,要发送两次请求,地址栏也会发生 ...

  8. Java基础接口和抽象类区别(二)

    抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则 ...

  9. python基础知识第二篇(字符串)

    基本数据类型 数字                  整形 int                             ---int                            将字符串 ...

  10. js问题记录(一) -- 关于for in, sort(), 及prototype

    1.关于for in for in : 遍历对象中的可枚举的属性 例子1:for in 遍历对象的键为String类型,所以调用时用Object[key]形式,而不用Object.key形式 < ...