zoukankan      html  css  js  c++  java
  • CentOS安装git及使用Gitolite来管理版本库

    首先吐槽一下网上的各种教程,大部分都扯蛋,估计都是些所谓的“编辑”在网上瞎抄来的……

    以下内容都是基于CentOS的服务器端,Mac OS X的客户端。

    如果是使用的Windows的客户端,需要在git官网下载安装对应的客户端安装程序,并在“Git Shell”中操作,不要直接在cmd窗口中操作。

    先说安装git,这个是非常之简单:

    yum install git
    git —version
    

    如果能正常输出git的版本号,这样就算是安装好git并可以正常使用了,否则就根据错误提示去一步步修复软件源就对了。

    在安装好了git用户之后,现在要考虑的就是如何管理git的版本仓库的问题了,由于大神在设计git的时候,并没有考虑到那么多复杂的权限问题,导致用户可以直接访问到服务器上的所有版本库。要解决这个问题,就需要借助于Gitolite这个软件了。

    安装Gitolite

    在安装之前,先要配置好管理员账户的SSH免登录。

    在客户端上执行ssh-keygen命令,直接连续3个回车,在~/.ssh文件夹中生成两个文件:id_rsa为私匙, id_rsa.pub为公匙,把 id_rsa.pub文件复制到服务器的git账户的home文件夹下(/home/git/)待用。

    然后在服务器上Gitolite,注意把YourName换成你自己的名字

    cd
    rm -rf .ssh/authorized_keys
    mv id_rsa.pub YourName.pub
    mkdir bin
    git clone git://github.com/sitaramc/gitolite
    gitolite/install -to $HOME/bin
    bin/gitolite setup -pk YourName.pub
    

    这样,就算是安装好了,下面再看如何用Gitolite来具体管理版本仓库。

    Gitolite的设计可谓是相当的巧妙,管理版本库,就是管理一个基本的配置文件而已,设置都不需要在服务器上去操作,直接用刚才的管理员账户在客户端上操作就行了:

    git clone git@server_ip_or_domain:gitolite-admin
    vim gitolite-admin/conf/gitolite.conf
        

    看看conf文件的内容,是不是很容易理解? 要添加一个仓库,只需要再配置一个repo块,用户授权也很简单,RW表示读写 R表示只读,把其他用户的id_rsa.pub文件重命名成RW或R时指定的用户名.pub放到gitolite-admin/keydirs即可。

    修改好conf文件,复制好pub文件,然后和操作普通的git仓库一样,commit再push到服务器上就万事大吉了。

    Gitolite会自动创建仓库,并把pub文件内容添加到git的.ssh/authorized_keys文件中。

    要取消某个用户对指定仓库的访问权限,则直接在conf文件中找到对应的repo块,删除用户那一行配置,commit,push,OK。

    如果要删除一个仓库,也很简单,直接在conf中删除整个repo块,并push到服务器上,这样这个库就没人能访问了,但库的文件并不会从服务器上删除,需要手动去删除下,这个道理大家应该懂?Gitolite还给咱留了一条退路。。。。

  • 相关阅读:
    Andrew Ng机器学习 二: Logistic Regression
    Andrew Ng机器学习 一: Linear Regression
    python爬有道翻译
    硬件学习之无刷电机理论1
    字符串优化处理
    缓冲&缓存&对象池概念的理解
    线程池的学习及使用
    线程同步&线程池
    数据类型转换&运算符
    集合中常用的数据结构
  • 原文地址:https://www.cnblogs.com/xiaosilent/p/3620521.html
Copyright © 2011-2022 走看看