CentOS6.*安装gitolite
http://www.kankanews.com/ICkengine/archives/64748.shtml
安装基础包
# yum install perl openssh git
创建git用户
# adduser git
# passwd git
在git用户家目录下安装gitolite
切换到git用户
# su – git
创建文件夹bin
$ mkdir bin
克隆gitolite源码
$ git clone https://github.com/sitaramc/gitolite.git
$ ls
bin gitolite
安装gitolite
$ ./gitolite/install -to /home/git/bin/
$ cd bin/
$ ls
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF
配置gitolite管理员
生成管理员账户的公钥(此处指定本地root用户为管理员,键入回车使用默认值)
# ssh-keygen
复制管理的公钥
# cp .ssh/id_rsa.pub /tmp/admin.pub
切换回git用户,为gitolite配置管理员
$ /home/git/bin/gitolite setup -pk /tmp/admin.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one$ ls
bin gitolite projects.list repositories
管理员日常管理
管理员clone管理库(此处为本地root用户)
# git clone git@192.168.213.130:gitolite-admin
Initialized empty Git repository in /root/gitolite-admin/.git/
The authenticity of host ’192.168.213.130 (192.168.213.130)’ can’t be established.
RSA key fingerprint is d4:28:ca:66:58:b6:39:c1:aa:37:58:9a:5b:ed:50:05.
Are you sure you want to continue connecting (yes/no)? yes
#
此处因为第一次ssh连接,所以需要输入’yes’
Warning: Permanently added ’192.168.213.130′ (RSA) to the list of known hosts.
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
Receiving objects: 100% (6/6), 748 bytes, done.
remote: Total 6 (delta 0), reused 0 (delta 0)
# pwd
/root/gitolite-admin
# ls
conf keydir
创建库、添加用户
例如某test123用户访问git服务器上的myFirstRepo库
test123用户向git服务器管理(此处是之前的服务器本地的root用户)提交自己的ssh无密码公钥
管理员将test123的公钥复制到 gitolite-admin/keydir/ 下
# cp test123.pub /root/gitolite-admin/keydir/
管理员创建myFirstRepo库,并给test123分配权限
# cd gitolite-admin/conf/
# vim gitolite.conf
默认内容为:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
下边定义myFirstRepo库,并且指定用户权限:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
@myGroup=admin test123
repo myFirstRepo
RW+ = @myGroup
注:此处@myGroup是一个组,给myGroup组赋予对myFirstRepo这个库的读、写、推送的权限(详细规则可参考gitolite的readme.txt)
管理员将对gitolite-admin的修改(建库、加用户)提交到git服务器
# pwd
/root/gitolite-admin
# git status
# On branch master
# Changed but not updated:
# (use “git add <file>…” to update what will be committed)
# (use “git checkout — <file>…” to discard changes in working directory)
#
# modified: conf/gitolite.conf
#
# Untracked files:
# (use “git add <file>…” to include in what will be committed)
#
# keydir/test123.pub
no changes added to commit (use “git add” and/or “git commit -a”)# git add *
# git commit -m “AddRepo:myFirstRepo;AddUser:test123″
[master 4c5a5d0] AddRepo:myFirstRepo;AddUser:test123
Committer: root <root@app-node-V-CC.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config –global user.name “Your Name”
git config –global user.email you@example.com
If the identity used for this commit is wrong, you can fix it with:
git commit –amend –author=’Your Name <you@example.com>’
2 files changed, 6 insertions(+), 0 deletions(-)
create mode 100644 keydir/test123.pub
注:提示是建议设置用户信息(便于多人协作时辨别),可参照提示命令操作(其实git自动为你添加了)
# git push origin master
Counting objects: 10, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 859 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Initialized empty Git repository in /home/git/repositories/myFirstRepo.git/
To git@192.168.213.130:gitolite-admin
48a7307..4c5a5d0 master -> master
客户验证
test123用户克隆myFirstRepo库
$ git clone git@192.168.213.130:myFirstRepo
Initialized empty Git repository in /home/test123/myFirstRepo/.git/
warning: You appear to have cloned an empty repository.
$ ls
myFirstRepo
test123用户初始化myFirstRepo库
$ touch test.sh
$ git add test.sh
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use “git rm –cached <file>…” to unstage)
#
# new file: test.sh
#
$ git commit -m “InitRepo:myFirstRepo”
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 224 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.213.130:myFirstRepo
* [new branch] master -> master
SSH非22端口通信
本地或gitolite服务器使用非ssh默认端口,会出现错误,可通过下列方法解决:
$ vim ~/.ssh/config
添加 如下内容
host ${ip_of_gitolite_server}
port ${post_of_yours}
ubuntu12.04上安装gitolite,照猫画虎就行
声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。
CentOS6.*安装gitolite的更多相关文章
- 安装gitolite,并ssh公钥无密码登录
安装gitolite,并ssh公钥无密码登录 gitolite是管理git版本库的一种方案,它将git版本库的管理信息放在了一个特殊git版本库里.gitolite与linux操作系统集成了,需要使用 ...
- Centos6 安装vnc
Centos6 安装vnc 1. 安装 使用yum方式安装 yum install tigervnc-server tigervnc #启动 vncserver #重启动 /etc/init.d/vn ...
- centos6 安装vsftpd
centos6 安装vsftpd vsftpd一般选择yum安装,以下是安装和配置过程 如果是centos6想要安装的话一般是编译安装 1.安装 yum安装 yum install vsftpd 编译 ...
- oracle 11g centos6 安装
选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS( ...
- CentOS6 安装Sendmail + Dovecot + Roundcubemail
前言 本文是继CentOS6 安装Sendmail + Dovecot + Squirrelmail 关于邮箱服务器配置的第二篇文章,因为关于使用Sendmail进行相关配置的文章.资料等太老,而且资 ...
- centos6 安装配置ss笔记
2018-05-17 centos6 安装配置ss笔记 操作环境:Centos 6 x86_64 bbr 服务器地址:美国 1.准备VPS 在https://www.bwh1.net可购买,购买时已默 ...
- Centos6安装Percona-tools工具
Centos6安装Percona-tools工具 环境:centos6.x yum -y install perl-DBI yum -y install perl-DBD-MySQL yum -y i ...
- Centos6安装FreeSWITCH 1.5时./configure问题解决记录
系统:Centos 6.4 64位: FreeSWITCH版本:1.5 具体的安装过程参考FreeSWITCH 官网wiki (也可以参考我的博客<Centos6安装FreeSWITCH> ...
- CentOS6 安装并破解Jira 7
CentOS6 安装并破解Jira 7 JIRA软件是为您的软件团队的每个成员构建的,用来规划,跟踪和发布优秀的软件. https://confluence.atlassian.... 最低硬件要求及 ...
随机推荐
- linux下gtk+一个将字符串大写化的小示例
首先用glade画图形界面: 并且设置gtk元素名称(ID)以及设置事件回调函数. 下面写代码: #include <gtk/gtk.h> #include <string.h> ...
- 手把手教你从头开始搭建友善之臂ARM-tiny4412开发环境(史上最详细!!)
创建一个ARM目录 mkdir /disk/A9 -p 接下来你需要准备以下的东西 1.arm-linux-gcc-4.5.1 交叉编译器 2.linux-3.5-tiny4412 ...
- MR for Baum-Welch algorithm
The Baum-Welch algorithm is commonly used for training a Hidden Markov Model because of its superior ...
- Swap Nodes in Pairs(交换节点)
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
- ORACLE中主键约束跟唯一索引的区别
分类: DB 2011-12-03 21:34 611人阅读 评论(0) 收藏 举报 oracleconstraintsimmutableusertabledomain 1. 分别用两种方法创建主键 ...
- Nuget发布教程
nuget setApiKey Your-API-Key -Source https://www.nuget.org/api/v2/package nuget spec nuget pack Monk ...
- Xamarin引用第三方包错误解决方法
http://www.cnblogs.com/ThenDog/p/7623720.html
- Android OkHttp文件上传与下载的进度监听扩展
http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时 ...
- JDK8安装时错误1335的解决
Win7安装JDK8 update65版本时,碰到错误1335,错误信息大概是一个cab文件损坏了,搜索了一下,有网站提供这个错误的修补工具,不过最终我没有下载这个工具,说是系统问题,但工具不是MS官 ...
- 重温《STL源码剖析》笔记 第二章
源码之前,了无秘密. --侯杰 第二章:空间配置器 allocator SGI特殊的空间配置器,std::alloc SGI是以malloc()和free()完成内存的配置与释放. SGI设计了双层级 ...