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

以下内容都是基于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. ASP.NET Core 3.0 实战:构建多版本 API 接口

    第一次在博客写分享,请多多捧场,如有歧义请多多包含! 因为业务需求发展需要,所以API接口的变更升级是必不可少的事情,而原有的接口是不可能马上停止使用的.例如:Login接口为例,1.0版本之返回用户 ...

  2. 20155306 白皎 0day漏洞——基础知识

    20155306 白皎 0day漏洞--(第一篇)基础知识 写在前面: 本次免考实践方向是0day漏洞,以博客的形式记录了我的学习实践过程.第一篇博客主要围绕什么是0day漏洞以及一些以后学习中需要的 ...

  3. 20155325 Exp6 信息搜集与漏洞扫描

    实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的 ...

  4. # 20155337《网络对抗》Exp9 Web安全基础

    20155337<网络对抗>Exp9 Web安全基础 实践目标 一.基础问题回答 1.实验后回答问题 SQL注入攻击原理,如何防御 SQL注入攻击的本质是利用SQL语法,针对应用程序开发过 ...

  5. 【Win32 API】利用SendMessage实现winform与wpf之间的消息传递

    原文:[Win32 API]利用SendMessage实现winform与wpf之间的消息传递 引言    有一次心血来潮,突然想研究一下进程间的通信,能够实现消息传递的方法有几种,其中win32ap ...

  6. SQLAlchemy 与 fask-SQLAlchemy 中的多表查询例子

    我们知道,<学生.课程.选课>,是一个典型的多对多关系. 现分别用 SQLAlchemy 与 fask-SQLAlchemy 实现. 声明:本人实测通过. 使用 SQLAlchemy fr ...

  7. R绘图 第四篇:绘制箱图(ggplot2)

    箱线图通过绘制观测数据的五数总括,即最小值.下四分位数.中位数.上四分位数以及最大值,描述了变量值的分布情况.箱线图能够显示出离群点(outlier),离群点也叫做异常值,通过箱线图能够很容易识别出数 ...

  8. 一次VB汇编中看-溢出计算

    图文记录 一.观察程序特点和运行逻辑 带弹窗 是VB开发的 需要用户名和注册码 有弹框 具备了很简单的特点…… 错误弹框,如图 二.定位 弹窗内容入手,搜索关键字定位到关键跳,nop掉或者je改jne ...

  9. MOSFET简介以及PMOS和NMOS的差异

    最近在工作中,一直在调试关于MOSFET的电路.在设计过程中发现了PMOS和NMOS的差异,在此记录. 一. MOSFET简介 MOSFET (metal-oxide-semiconductor fi ...

  10. kudu 存储引擎简析

    本文由  网易云发布. 1 概述 本文主要介绍kudu底层存储引擎的数据组织方式,先看整体结构如下: 一张表会分成若干个tablet , 每个tablet 包括MetaData 元信息及若干个RowS ...