gitolite-admin是用于管理git版本库的版本库,将其从服务器上clone下来。

使用tortoise git clone的时候需要指定私钥,私钥的格式是ppk的,需要使用putty的PUTTYGEN.EXE工具将其转换为ppk格式的。

如上图,clone的时候,勾选load putty key,即可指定ppk的路径。

clone完成之后,可以看到gitolite-admin 目录下有两个目录conf/ 和 keydir/。

其中keydir中存放用户的公钥,公钥文件的名字就是用户名。

如果想增加一个叫做test的用户,那么就生成一对密钥,然后将公钥命名为test.pub,并放到keydir中,然后提交到master然后push到服务器的gitolite-admin中。

conf目录下的gitolite.conf用于控制用户的权限。下面是它默认的内容:

#gitolite conf

# please seeconf/example.conf for details on syntax and features

repo gitolite-admin

RW+                 = git

repo testing

RW+                 = @all

repo所在的行表示权限控制操作所针对的版本库,repo和版本库名称使用空格分开。

之后的行表示不同的用户或者组对该版本库所具有的权限。

上面文件中的内容表示git用户对gitolite-admin版本库有读写的权限,testing所用用户对testing版本库有读写权限。

如果要将相同的权限分配个多个用户,可以在等号右边以空格分隔填写多个用户名。如“RW+ = git test”表示git和test用户对该版本库有读写权限。更好的做法是将用户划分为组,用户组以@开头,系统提供了一个默认的组@all用于表示所有用户。分组的语法为 “组 = 用户1 用户2”,需要将分组配置喜写到配置文件的开头。
下面是将test和git用户划分到管理员组。

@admin = test git

为组划分权限和为用户划分权限的语法一样,如“RW+ = @admin @all”表示admin组和all组的用户可以读写某版本库(实际中不需要这么写,all包含了admin)。

如果要在服务器上创建版本库,只需要经本地的版本库push到服务器上即可。但是首先要修改gitolite.conf文件,为服务器上即将创建的版本库指定创建权限。

repo test-repo

C                      = test

RW+                 = test

上面的语句表示,test用户有权在服务器上创建版本库test-repo,并且有权读写它。gitolite.conf push到服务器之后,就可将本地的test-repo push到服务器的test-repo了。

在push之前首先要设置push的目标。设置方法如下

选中版本库配置节点的Git/remote节点,然后在右侧填写push的目标,然后点击“Add New/Save”。修改push的目标也是这整个页面进行的。

上面那个url需要特别说明一下,git@server:test-repo分为了三部分,git表示服务器上运行gitolite的用户;server表示服务器的地址,一般用ip或者域名替代;test-repo就是版本库在服务上的相对路径。这里直接写上了版本库的名称表示版本库放到服务器上的repositories目录中。

使用tortoise git管理gitolite版本库的更多相关文章

  1. 学习笔记--Git安装 创建版本库 图文详解

    一.Git下载 在Windows上安装git,一般为msysgit,官网地址:http://git-scm.com/ 我下载的是Git-1.9.2-preview20140411.exe 二.Git安 ...

  2. Git教程--Git安装和版本库的创建

    Git的诞生 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世界热 ...

  3. Git入门——本地版本库操作

    作为一个一直用SVN的家伙,深深地感到了自己在版本控制工具上的落伍.... 首先必须强调的是: Git与Github不是一回事. Git是目前世界上最先进的分布式版本控制系统,于2005年被linux ...

  4. [git]入门-创建版本库

    转载整理自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256 ...

  5. git入门 创建版本库, 版本管理 分支 标签

    参考: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 GIT最流行的分布式版本 ...

  6. Git(二)使用git管理文件版本(TortoiseGit )

    一.创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都 ...

  7. Git学习--创建版本库

    什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...

  8. 『现学现忘』Git基础 — 8、Git创建本地版本库

    目录 1.Git版本库介绍 2.创建本地版本库 场景一:创建一个空的本地版本库. 场景二:项目中已存在文件时,创建该项目的本地版本库. 场景三:在GitHub网站上创建仓库,克隆到本地. 1.Git版 ...

  9. Git学习之路(2)-安装GIt和创建版本库

    ▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...

随机推荐

  1. 3.1html学习之列表

    一.含义: ul:unorder list ol:order list li:list item dl:definition list dt:definition term dd:definition ...

  2. C#.net 获取当前应用程序所在路径及环境变量

    一.获取当前文件的路径 string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名. string st ...

  3. EF——默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射 02 (转)

    EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射   I.EF里的默认映射 上篇文章演示的通过定义实体类就可以自动生成数据库,并且EF自动设置了数据库 ...

  4. WWH学习模式

    WWH是"What+Why+How"的简称,是对学习方法最完美的概括."如果不按照WWH这种模式来教学,90%的结果是老师没教好,学生学不好." 1.What( ...

  5. 1.5.1 Analyzers,Tokenizers,Filters概述

    字段分析器(Analyzers)即用于文档索引也用于查询.一个分析器检查字段的文本,并生成一个token流.分析器可能是一个单独的类,也可能是一系列的tokenizer和filter的组合. 分词器把 ...

  6. UVa OJ 10055

    Problem A Hashmat the brave warrior Input: standard input Output: standard output Hashmat is a brave ...

  7. entity framework 连接 oracle 发布后出现的问题(Unable to find the requested .Net Framework Data Provider)

    用entity framework 搭建的一个windows 程序,在vs中用oracle 的ODT 工具连接oracle数据库,昨天发布后出现下面一个错误, System.ArgumentExcep ...

  8. 2013年arcgis培训

    关于开展“GIS空间分析及应用案例解析”培训班的通知   各企事业单位: 随着信息技术的发展,地理信息系统(简称GIS)产业异军突起,在国民经济各个行业中的应用日益广泛,物联网.智慧地球.3S技术等等 ...

  9. 【Android 界面效果40】Android4.0-Fragment框架实现方式剖析(一)

    经过反复的学习对比,个人觉得带着问题学习新知是最有效的学习方式,因此文本就以提问的方式来讲述Fragment框架实现方式. 1.什么是Fragment? Fragment包含在Activity中,Fr ...

  10. js概念理解

    1.面向对象. 2.函数表达式. 3.递归. 4.闭包. 5.原型链. 6.作用域链. 7.上下文. 8.类. 9.活动对象. 10.w3c规范. 11.设计模式. 12.重构. 13.低耦合,高内聚 ...