使用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. Java学习笔记(面向对象下)

    面向对象(下) 类的继承 类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类称为子类,现有类称为父类,子类会自动拥有父类所有可继承的属性和方法.(用extends关键字)   //定义A ...

  2. python优势之通过一段代码来了解python的强大之处

    晚上闲暇之余随意翻了一下博客,看到https://www.jianshu.com/p/69bf0ed0b5cc作者提到了一段代码,刚开始看没啥感觉,仔细深入后引起了我的注意.里面使用了python最简 ...

  3. XCode项目配置

    此设置优先级在playersetting之上,如果为空或者格式不正确或者文件不存在将不会设置,请注意 一.设置面板 二.对应Xcode中设置 1.TeamID  登录苹果开发者网站,查看个人信息,就有 ...

  4. 小程序 - 解决IOS端使用css滤镜渲染出现异常

    在页面渲染时,GPU默认不会开启.当css样式中出现某些规则时,就会开启GPU加速,让动画运行的更加流畅,最显著的象征就是元素的3D变换. 这些就是我们通常所说的css硬件加速,但我们有时候并不需要用 ...

  5. 基于iCamera测试高清摄像头SIV100B(替代ov7670)小结

    基于iCamera测试高清摄像头SIV100B(替代ov7670)小结 先看看siv100b主要关键参数 SIV100B与OV7670分辨率和基本特性都差不多,而siv100b,像素尺寸更小,灵敏度更 ...

  6. nmap扫描进阶、msfconsole攻击入门(网安全实训第二天)

    本期内容:nmap扫描.msfconsole攻击入门 1. nmap扫描进阶 2.msfconsole攻击入门 1.nmap扫描进阶 (1)nmap命令 nmap --sP -iL abin.txt ...

  7. JDBC导致的反序列化攻击

    背景 上周BlackHat Europe 2019的议题<New Exploit Technique In Java Deserialization Attack>中提到了一个通过注入JD ...

  8. JS基础知识——变量类型和计算(一)

    JS中使用typeof能得到的哪些类型? 何时使用===何时使用==? JS中有哪些内置函数? JS变量按照存储方式区分为哪些类型,描述其特点? 如何理解JSON? 知识点梳理 一.变量类型: (1) ...

  9. C# 中获取一个目录下的目录与文件

    //获得目录下所有文件和子目录使用DirectoryInfo类的GetFileSystemInfos()方法. //获得目录下所有目录 string[] dirs = Directory.GetDir ...

  10. 在项目中在线使用Iconfont图标

    Iconfont真的很强大,图标数量惊人,基本任意的关键词都能搜索到你想要的结果.而且是国产的,网速会比较快,还可以改变图标颜色. 它提供svg.png.ai三种格式下载,之前我一直都是乖乖的一个个下 ...