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

以下内容都是基于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还给咱留了一条退路。。。。

 

 

 

CentOS安装git及使用Gitolite来管理版本库的更多相关文章

  1. GIT使用—创建并使用远程版本库

    远程版本库 (1)创建一个裸版本库 [root@localhost tmp]# git init fluff2 Initialized empty Git repository in /tmp/flu ...

  2. centos 安装git server

    1.yum install lrzsz wget git 2.安装gitosis:gitosis为Git用户权限管理系统,通过管理服务端的/home/git/.ssh/authorized_key文件 ...

  3. CentOS安装Git实现多人同步开发

    描 述 要开发一个"cms系统",有2个人分别是:晓飞, 盈月.要求使用Git来进行版本控制. 项目信息 版本控制:Git 项目名称:cms 开发人员:xiaofei,yingyu ...

  4. Centos安装Git、DotNet、Docker

    1.安装Git yum install git 可通过下面的命令查看Git版本 git --version 2.安装Dotnet sudo yum install libunwind libicu 导 ...

  5. centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署

    安装git服务器先安装依赖软件:yum -y install gcc zlib-devel openssl-devel perl cpio expat-devel gettext-devel open ...

  6. Centos 安装GIT 1.7.1

    在Linux上安装Git 1.首先,你可以试着输入git,看看系统有没有安装Git: git 2.安装GIT https://git-scm.com/download/linux yum instal ...

  7. CentOS安装Git服务器 Centos 6.5 + Git 1.7.1.0 + gitosis

    1.安装扩展 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel 2.下载git ...

  8. CentOS安装Git

    准备安装Gityum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel #下载git-1 ...

  9. CentOS安装Git服务器

    1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum ...

随机推荐

  1. 使用Highcharts生成折线图_at last

    //数据库数据的读取,读取数据后数据格式的转换,还有highchart数据源的配置,伤透了脑筋. anyway,最终开张了.哈哈! 数据库连接:conn_orcale.php <?php $db ...

  2. 使用BAPI批量修改采购信息记录的税率

    业务方面提出需求:由于国家税率从5月份开始16%更改为13%.要求开发一个批量修改采购信息记录税率的功能. 税代码就是税率,J2代表13% 这个需求在ME13里面就可以单个修改,所以可以用BDC,但后 ...

  3. 网络对抗技术 2017-2018-2 20152515 Exp4 恶意代码分析

    1.实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 答:- 我会使用sysmon工具来 ...

  4. Exp1 逆向与bof基础

    20155332<网络对抗>Exp1 逆向与bof基础 1.实验目的 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简 ...

  5. 20155339平措卓玛 Exp1 PC平台逆向破解(5)M

    20155339平措卓玛 Exp1 PC平台逆向破解(5)M 实践内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖 ...

  6. jq 在字符串中,去掉指定的元素

    例: var arr= ["4.5岁", "3.5岁", "5.5岁", "5岁", "4岁"] v ...

  7. WPF解决按钮上被透明控件遮盖时无法点击问题

    原文:WPF解决按钮上被透明控件遮盖时无法点击问题 IsHitTestVisible="False" 在控件上设置如上属性即可,即可让透明控件不触发点击效果

  8. CS229笔记:生成学习算法

    在线性回归.逻辑回归.softmax回归中,学习的结果是\(p(y|x;\theta)\),也就是给定\(x\)的条件下,\(y\)的条件概率分布,给定一个新的输入\(x\),我们求出不同输出的概率, ...

  9. python中获取执行脚本路径方法

    1.sys.path[0]:获取执行脚本目录绝对路径 #每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取) #!/usr/bin/python3 i ...

  10. python的多继承关系

    python和C++一样,支持多继承.概念虽然容易,但是困难的工作是如果子类调用一个自身没有定义的属性,它是按照何种顺序去到父类寻找呢,尤其是众多父类中有多个都包含该同名属性. class P1 #( ...