Gitolite v3安装配置指南
使用gitolite对git仓储进行权限配置
1.ssh协议
该命令会在用户目录下.ssh目录下生成两个文件
私钥文件。是基于 RSA 算法创建。该私钥文件要妥善保管,不要泄漏。
id_rsa.pub
公钥文件。和 id_rsa 文件是一对儿,该文件作为公钥文件,可以公开。
user@server
user@server
编辑~/.ssh/config
user admin
port
identityfile
~
/.ssh
/jiangxing #指定登录时使用的本地公钥
2.创建git用户
3.生成ssh key
git@127.0.0.1
4.下载gitolite
5.安装配置
/gitolite
/install
-to
~
/bin
mv
~
/.ssh
/authorized_keys
~
/git.pub
~
/bin
/gitolite setup
-pk
~
/git.pub
/home
/git
/repositories
/gitolite
-admin.git
/
初始化空的 Git 版本库于
/home
/git
/repositories
/testing.git
/
6.测试
git@127.0.0.1
this is git@linux
-dev running gitolite3 v3.
.
-
-g62fb317 on git
.
.
.
R W gitolite
-admin
R W testing
7.添加用户
git@127.0.0.1:gitolite-admin
-dev
:
~
/gitolite
-admin$ tree
.
├── conf
│ └── gitolite.conf
└── keydir
└── git.pub
directories,
files
- rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVPPqRucnXGPOP2I6NbJ4wgg9vwb91mo9Q3AZJgbaK45Qz5UK71qM9JxL71jU3F2ogk1NHD0MCIlmmI50
/
1f1BHhd
+ xxxxxxxxxxxx
+ DU30KzsylQVN3sAz4gOpvz
+ zl7ftBPxtVYwSluJ
+ om4V4mbXT9
+ uczRbCe1ejhYdg7vKYQV7K1VJ26hON8ztCRarL52Irq
/
6a5It1Q78xv6Xf5F4mQOzUQsQp2EthtoA9XPiIybMjzNThDfbbKeW7kRZxBgi0RWLRYUSmc
/ UBNkQuub8l
+ II4S0FNhnUlNkmC
/ mUHKTqcjeS1fyJAkRcYC
+ fVTd4zqBNj1JupZfafpaeB keven@linux
- dev
= git keven
repo gitolite
- admin
RW
+
= @admin
repo testing
RW
+
= git
RW
= @all
8.权限配置
C
C 代表创建。仅在 通配符版本库 授权时可以使用。用于指定谁可以创建和通配符匹配的版本库。
R, RW, 和 RW+
R 为只读。RW 为读写权限。RW+ 含义为除了具有读写外,还可以对 rewind 的提交强制 PUSH。
RWC, RW+C
只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(分支或里程碑等)。
RWD, RW+D
只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 D 的含义是允许删除和正则引用匹配的引用(分支或里程碑等)。
RWCD, RW+CD
只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(分支或里程碑等),D 的含义是允许删除和正则引用匹配的引用(分支或里程碑等)。
-
是一条禁用指令。只对写操作起作用,即禁用用户的写操作。接下来实际分析一个稍微复杂一些的配置文件1 @admin
= git keven admin1 admin2
2 @devteam
= dev1 dev2 dev3 fish
3
4 repo gitolite
-admin
5 RW
+
= git keven
6
7 repo Projects
/.
+
8 C
= @admin
9 RW
= @all
10
11 repo testing
12 RW
+
= @admin13 - = fish
14 RW master = @dev
15 RW+ dev = dev1
16 RW wip$ = dev2逐行解释:1: @admin用户组有git keven admin1 admin2四个用户2:@devteam用户组有dev1 dev2 dev3 fish四个用户4:对于gitolite-admin仓储5:git keven两个用户拥有读/写/强制更新的权限7:对于Projects下所有的git仓储(/.+代表递归所有)8:@admin用户组拥有创建仓储的权限9:所有人均可读/写11:对于testing.git12:@admin用户组拥有读/写/强制更新的权限13:fish是新手,对其屏蔽写的权限。因为其属@dev组,则还只剩下R 读的权限14:@dev用户组对master开头的分支拥有读/写权限15:dev1这个用户对dev开头的分支拥有读/写/强制更新的权限16:dev2这个用户对于wip分支(严格匹配)具有读/写权限冷门用法,需要用户对gitolite有一定了解有的时候用户可能需要在服务器端创建属于自己的仓储,这个时候就需要像下边这样:@admin
= git keven admin1 admin2
repo pub
/CREATOR
/.
+$
C
= @all
RW
+
= CREATOR
R
= @admin每个用户都可以在users/<自己的用户名>目录下创建属于自己的仓储,而这个仓储,自己拥有完整的权限,管理员只有读权限。注:
RW+ = CREATOR丢失会导致只能init空仓储而不能向上推送内容。用法:在用户shell中,进入要提交至服务器的仓储,执行:git push
git@server:pub/<username>/somegit.git <branch>用户可以通过ssh
git@server perms对仓储权限进行设置,允许其他用户拥有写权限等。添加读权限是READERS,读写权限是WRITERS操作:ssh git@server perms pub
/
<username
>
/somegit READERS user1
ssh git@server perms pub
/
<username
>
/somegit WRITERS user2
9.远程创建/删除仓储
创建:
关于创建仓储,方法有三种:a. 登录远程服务器创建
ssh登录服务器,切换至git用户,进入相关目录,创建某仓储mkdir somegit.git
cd somegit.git
git init
--bare创建完毕b.修改gitolite.conf创建仓储
打开gitolite-admin/conf/gitolite.conf,添加:repo testing2
RW
+
= @all保存修改,提交。git@linux
-dev
:
~
/gitolite
-admin$ git commit
-m
'add test2'
[master b26be9a] add test2
file changed,
insertions(
+)
git@linux
-dev
:
~
/gitolite
-admin$ git push origin master
Counting objects
:
, done.
Delta compression
using up to
threads.
Compressing objects
:% (
/
), done.
Writing objects
:% (
/
),
bytes, done.
Total
(delta
), reused
(delta
)
remote
: 初始化空的 Git 版本库于
/home
/git
/repositories
/testing2.git
/
To git@
.
.
.:gitolite
-admin
0c409e4..b26be9a master
-
> master可以看到,gitolite会自动检测配置文件,发现目前没有的仓储会自动才创建。c.高端大气上档次
对于通配符版本库,即repo Projects/.+类型的,在有创建权限的用户shell中,本地执行:mkdir somegit
cd somegit
git init
git commit
--allow
-empty
git remote add origin git@server
:Projects
/somegit.git
git push origin mastergitolite会直接创建新的仓储。删除:
1.在conf/gitolite.conf中删除相关仓储配置信息(gitolite不会自动删除服务器上的文件,这点与add不同);2.登录服务器删除需要删除的仓储。重命名
同删除操作的步骤。
10.mirror操作
Gitolite v3安装配置指南的更多相关文章
- [转载]SharePoint 2013测试环境安装配置指南
软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...
- 【转】服务器证书安装配置指南(Weblogic)
服务器证书安装配置指南(Weblogic) 详情请点击: http://verisign.itrus.com.cn/html/fuwuyuzhichi/fuwuqizhengshuanzhuangpe ...
- 大数据应用日志采集之Scribe 安装配置指南
大数据应用日志采集之Scribe 安装配置指南 大数据应用日志采集之Scribe 安装配置指南 1.概述 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它 ...
- 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置
Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...
- 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...
- 【云计算】ubuntu下docker安装配置指南
Docker Engine安装配置 以下描述仅Docker在Ubuntu Precise 12.04 (LTS).Ubuntu Trusty 14.04 (LTS).Ubuntu Wily 15.10 ...
- linux下安装Apache(https) 服务器证书安装配置指南
一. 安装准备 1. 安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持.推荐下载安装openssl-0.9.8k.tar.gz 下载Openssl:http: ...
- HADOOP2.2.0安装配置指南
一. 集群环境搭建 这里我们搭建一个由三台机器组成的集群: Ip地址 用户名/密码 主机名 集群中角色 操作系统版本 192.168.0.1 hadoop/hadoop Hadoop-mast ...
- CDH 安装配置指南(Tarball方式)
采用CDH Tarbal方式安装Hadoop集群. 1. 环境组件版本 组件名称 组件版本 用途 jdk 1.8 jdk-8u191-linux-x64 oracle jdk mysql mysql- ...
随机推荐
- VS2005+WINDDK+Driver Studio 3.2个人总结
通过在网上搜索大量的资料,终于把环境搭建起来.对于我这样的驱动新手来说,理应把高手们的东西整理并总结下,方便以后的初学者. 这三个软件的安装顺序没有具体规定,也有高手推荐的顺序,我自己也是重复安装卸载 ...
- python下的web服务器模块
python下的web服务模块有三种: BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler SimpleHTTPS ...
- java类和对象的基础(笔记)
在Java类的设计中,有时希望一个类在任何时候只能有一个实例.这时可以将该类设计为单例模式(singleton).要将一个类设计为单例模式,需要把类的构造方法的访问修饰符声明为private,然后在类 ...
- OC-多线程GCD的使用细节
1>GCD,全称Grand Central Dispatch,”牛逼的中枢调度器”,纯C语言,提供了非常多强大的函数2>GCD优势:(1)GCD是苹果公司为多核的并行运算提出的解决方案(2 ...
- 【HTML相关】iframe+javascript实现一个表单提交后多个处理文件按序处理
最近在弄一个网页的问题,总结如下. [问题描述] 页面中包括以下几个部分:1)表单form,供用户输入图片文件:2)iframe1,显示a.php文件的内容,a.php接收客户端图片并保存,后台程序处 ...
- sublime快捷方式和node.js
快捷方式具体见:http://blog.useasp.net/archive/2013/06/14/sublime-text-2-all-default-Shortcuts-table-on-wind ...
- Python-zip压缩-解压
#打包成zip文件 import zipfile f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED) f.write('file_t ...
- JMS 企业开发流程实现
关于JMS的一些介绍参见[http://blog.csdn.net/aking21alinjuju/article/details/6051421] [补充] 消息的组成 1. 头(head) 每条J ...
- 【.Net基础拾遗】适配器模式(Adapter)与多态
今天晚上跟大家主要来讨论下适配器模式和多态,什么是适配器模式呢?先抛给大家一个问题:假设两个类Student和Teacher继承一个抽象基类Person,如何在不改动三类情况下实现多Student.T ...
- php 遍历文件夹及文件,获取文件名和文件路径存入数据库中
<?php header("Content-Type:text/html; charset=gbk"); require('../../include/connect.php ...