• gitolite离线安装


    1,概念说明

    需要区分gitolite服务器、gitolite管理员、gitolite普通用户三者的区别;

    gitolite服务器是git服务器,gitolite管理员与git服务器可以是两个服务器,gitolite管理员是第一个git用户;

    所有的git用户的添加等操作必须是gitolite管理员使用git操作进行添加;就是git add/commit/push;

    2,文件下载

    找一个可以上网的机器,执行命令:

    git clone git://github.com/sitaramc/gitolite

    下载后把这个文件夹上传到需要安装gitolite的服务器上面;

    必须使用这种方式,因为安装的时候需要查找gitolite/.git文件夹;

    如果没有.git文件夹,进行安装的时候会出现如下错误:

    git describe failed; cannot deduce version number

    3,gitolite安装

    添加操作系统用户git

    adduser git

    把gitolite管理员的公钥上传到/home/git下面,假设名字为git_admin.pub;

    使用git用户进行gitolite安装

    mkdir bin  # 创建bin目录用于安装gitolite

    ./gitolite/install -to ~/bin  # 进行gitolite安装

    ~/bin/gitolite  setup -pk ~/git_admin.pub # 这是进行git环境初始化的过程;

    通过setup,会创建~/.gitolite文件夹,这里面有config和key;

    还会创建repositories文件夹,里面会放仓库;还有projects.list,存放仓库名称;

    4,gitolite管理员初始化

    git clone git@IP地址:gitolite-admin.git

    此命令是在gitolite管理员的环境下执行的,由于使用了git_admin.pub进行了初始化,所以

    这种情况下是可以clone下来的,会在当前目录生成gitolite-admin文件夹,这里面有

    conf/gitolite.conf文件(记录各个用户权限) 和 keydir文件夹(存储各个用户公钥);

    gitolite管理员进行添加之后,必须使用git add/commit/push操作进行权限设置生效;

    如果在conf/gitolite.conf文件中将管理员的权限删掉,而且还上传了到了服务器,

    下一次就无法进行管理了,可以在git服务端进行如下操作:

    把.gitolite/conf/gitolite.conf中的内容修改回来

    使用命令gitolite compile进行恢复;

    仓库权限设置的时候,可以设置某一个目录为可以创建,这样就可以在指定目录下面

    进行自己仓库的创建;配置文件大致为:

    repo  location/.+$

        RW+   =  user01

        C       = user01

    其中C为创建权限,有了创建权限用户在本地可以使用git clone git-server:localtion/repo01.git

    进行远程仓库的创建;

    5,添加普通gitolite用户

    对于普通用户生成公钥私钥

    ssh-keygen -t rsa

    生成之后需要把user.pub公钥交给gitolite管理员,由管理员进行配置;

    在conf/gitolite.conf文件中填写用户名user01,把用户的公钥文件user01.put方总keydir文件夹下面;

    然后git add/commit/push

    6,普通用户git操作

    配置.ssh/config文件,

    host git-server
    user user01
    hostname 192.168.0.111
    port 22
    identityfile ~/.ssh/user01

    这样进行git clone git-server:/folder/xxx 的时候就可以使用.ssh/user01私钥进行认证;

    7,程序的方式进行git读取

    如果一个操作系统有git命令,是可以使用操作系统用户进行git操作;

    git clone user01@192.168.1.111:/home/user01/abc.git 

    在系统提示输入密码的时候输入密码;

    注意这里使用的是user01的用户名密码,必须保证user01对/home/user01/abc.git的访问权限;

    另外,/home/user01/abc.git可以是gitolite创建的repository中的文件夹,

    也可以是把repository中的文件夹拷贝出来,放到别的地方,只要访问权限足够就使用git clone进行下载;

    8,公钥私钥生成方式

    ssh-keygen -t rsa -f filename 

    可以生成以filename命名的公钥私钥,存储于~/.ssh文件夹;

    9,参考资料

    https://www.worldhello.net/gotgit/05-git-server/040-gitolite.html 

  • 相关阅读:
    阿里fastjson工具类
    poi导出excel2007版本
    java 利用poi 实现excel合并单元格后出现边框有的消失的解决方法
    spring整合atomikos实现分布式事务
    彻底理解ThreadLocal
    kubernetes架构和组件
    Promethues实战-简易教程系列
    Celery
    对称加密,非对称加密,证书机制
    Git diff
  • 原文地址:https://www.cnblogs.com/stono/p/13921948.html
Copyright © 2020-2023  润新知