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还给咱留了一条退路。。。。
CentOS安装git及使用Gitolite来管理版本库的更多相关文章
- GIT使用—创建并使用远程版本库
远程版本库 (1)创建一个裸版本库 [root@localhost tmp]# git init fluff2 Initialized empty Git repository in /tmp/flu ...
- centos 安装git server
1.yum install lrzsz wget git 2.安装gitosis:gitosis为Git用户权限管理系统,通过管理服务端的/home/git/.ssh/authorized_key文件 ...
- CentOS安装Git实现多人同步开发
描 述 要开发一个"cms系统",有2个人分别是:晓飞, 盈月.要求使用Git来进行版本控制. 项目信息 版本控制:Git 项目名称:cms 开发人员:xiaofei,yingyu ...
- Centos安装Git、DotNet、Docker
1.安装Git yum install git 可通过下面的命令查看Git版本 git --version 2.安装Dotnet sudo yum install libunwind libicu 导 ...
- centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署
安装git服务器先安装依赖软件:yum -y install gcc zlib-devel openssl-devel perl cpio expat-devel gettext-devel open ...
- Centos 安装GIT 1.7.1
在Linux上安装Git 1.首先,你可以试着输入git,看看系统有没有安装Git: git 2.安装GIT https://git-scm.com/download/linux yum instal ...
- 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 ...
- CentOS安装Git
准备安装Gityum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel #下载git-1 ...
- CentOS安装Git服务器
1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum ...
随机推荐
- vue中的img src 动态加载本地json的图片路径写法。
目录: 注意:本地json文件和json文件里的图片地址都必须写在static 静态文件夹里:否则json文件里的url地址找不到. major_info.json文件里的图片路径写法 页面通过v-b ...
- 汇编 循环位移指令 ROL, 循环位移指令 ROR
知识点: 循环位移指令 ROL 循环位移指令 ROR 一.循环位移指令 ROL ROR int i=0x77886611;//01110111100010000110011000010001 ...
- JavaScript快速入门-简介
一.JavaScript历史(摘自w3school) JavaScript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站点和 Web 应用程序之间的交互 ...
- 浅谈 iOS 中的 Activity Indicator
Activity Indicator 是iOS开发中必不可少的一个视图.本文就简单地总结一下这个Activity Indicator 的使用方法. 默认 Activity Indicator 以下的函 ...
- 开源微信Http协议Sdk【实现登录/获取好友列表/修改备注/发送消息】
基于微信Http协议封装的一个Sdk,目前实现了以下功能:. 1:扫码登录(检测二维码扫描状态) 2:获取最近联系人.群组.所有联系人 3:修改好友备注 4:给好友发送消息 暂且这么多,也没多余的时间 ...
- linux systemctl 命令
目录 预热 管理单个 unit 查看系统上的 unit 管理不同的操作环境(target unit) 检查 unit 之间的依赖性 相关的目录和文件 systemctl daemon-reload 子 ...
- 开发工具之Spark程序开发详解
一 使用IDEA开发Spark程序 1.打开IDEA的官网地址,地址如下:http://www.jetbrains.com/idea/ 2.点击DOWNLOAD,按照自己的需求下载安装,我们用免费版 ...
- 关于App自动化执行链接Appium服务包名正确但是报错An unknown server-side error occurred while processing the command
在执行链接Appium服务时连接失败可能原因: 1.报错截图: 2.先检查包名是否正确(正常情况下包名不会错误)通过命令行查看包名:aapt dump badging xxx.apk 3.检查对应包的 ...
- 安装Ubuntu后要做的事
优化 删除libreoffice sudo apt-get remove libreoffice-common 删除Amazon sudo apt-get remove unity-webapps-c ...
- vector 简介
vector简介 vector是STL中最常见的容器,它是一种顺序容器,支持随机访问.vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似, 不同的地方就是:数组是静态分配空间,一旦 ...