作者原创 请尊重知识。
第一步 配置本地、服务器git环境 省略。
第二步 创建服务器git账户 省略。
第三步 在服务器安装gitolite
3.1 设置gitolite工作目录
#cd /home/git #chown -R git:git /home/git #chmod -R 2755 /home/git
请尊重知识,请尊重原创 更多资料参考请见 http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1
3.2下载gitolite
#git clone git://github.com/sitaramc/gitolite.git
3.3安装gitolite
#su git #cd ./gitolite #mkdir -p ~/bin #./install -to ~/bin #echo "PATH=$PATH:$HOME/bin" >> ~/.bashrc #source ~/.bashrc 使环境变量生效
3.4 生成公钥与私钥
下一步需要使用到管理员的公钥,在客户端生成公钥与私钥,把公钥上传到git服务器
为了方便,我在git服务器本地生成公钥和私钥,也在git服务器本地进行测试。其实把私钥拷贝到客户端使用也可以。
#su root 切换到root用户
#ssh-keygen -t rsa -f jingfn
下面一直输入“回车”就可以,生成的公钥和私钥在当前下面
把jingfn.pub复制到根目录/下
#cp jingfn* /
将公钥jingfn.pub 私钥jingfn文件 权限修改为git
#chown git jingfn*
3.5 setup
#su git
#cd ~/bin
#./gitolite setup -pk /jingfn.pub
这一步容易出现 如下错误
FATAL: '/jingfn.pub' not a readable file FATAL: '/jingfn.pub' must have exactly one line
请仔细检查jingfn.pub文件的所有权是否是git. 可以考虑重新生成。
此ppk文件是客户端访问服务器的ssh密钥文件。在克隆的时候需要用到,
在提交代码的时候 同样用到。只要使用torioseGit软件,本地一般会有pageant服务并且出现在桌面右下角。
点击开 add key 将ppk文件加进去即可。
将会显示下面的初始化信息
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/ Initialized empty Git repository in /home/git/repositories/testing.git/
3.6 生成ppk
找到刚刚生成的jingfn(私钥,与公钥一起生成)
下载puttygen,运行puttygen,点击Conversions菜单项中的Import key ,
选择在刚刚生成的jingfn文件 ,在puttygen的界面上点击Save private key按钮就可以把私钥转换为ppk的格式了,
并存放好自己的ppk。
3.7 克隆gitolite-admin管理仓库
方法一 使用图形化界面
右键点击 git clone
设置好 url ,其格式为 git:120.24.239.225:gitolite-admin
设置 load putty key 选择刚刚生成并保存的ppk文件。
这时候就可以直接clone了。一般设置了load putty key之后,pull 和push 都是不需要填写密码的。
方法二 使用git bash
前提仍然是 需要先设置好 load putty key,否则不允许通过。
shell> git clone git@120.24.239.225:gitolite-admin.git 提交修改到服务器 shell> git add . shell> git commit -am "update gitolite conf file" shell> git remote rm origin shell> git remote add origin git@120.24.239.225:gitolite-admin.git shell> git push origin master
方法三 在Linux客户端直接克隆
shell> git clone git@120.24.239.225:gitolite-admin.git 提交修改到服务器 shell> git add . shell> git commit -am "update gitolite conf file" shell> git remote rm origin shell> git remote add origin git@120.24.239.225:gitolite-admin.git shell> git push origin master
3.8 测试
clone到本地的gitolite-admin 仓库,其结构为 keydir 和 conf
keydir 用于存放需要访问各个仓库的客户端公钥,conf下的gitolite.conf 文件用于配置客户端的权限。
repo gitolite-admin RW+ = jingfn repo testing RW+ = @all
在编辑gitolite.conf文件之前,服务器仓库testing.git 是可以正常被clone盗本地的,并且可以写入新的文件。
编辑gitolite.conf文件 去除testing 仓库下的所有用户
repo gitolite-admin RW+ = jingfn repo testing
这时候在本地 不管是push 还是pull 都是不被允许的。
到这里 基本完成了gitolite的权限配置。
3.9 用户组定义
repo gitolite-admin RW+ = jingfn repo testing RW+ = @all @admin = jingfn @android_admin = jinchengLi jingfn @android = jinchengLi ouxch fwl jingfn joie luoyy Aaron dongzhuoyue @java_admin = jingfn @java =jingfn joie wenquan zhengbobo repo gitolite-admin RW+ = @admin repo android/..* C = @android_admin @admin RW = @android repo java/..* C = @java_admin @admin RW = @java repo kp-android C = @android_admin RW = @android repo kp-android-old C = @android_admin RW = @android repo kp-set-001 C = @java_admin @admin RW = @java
这里修改了gitolite.conf文件 其权限分配规则是 ,定义了一组超级管理员@admin
以及 android 和java 的超级管理员和普通成员。
C 表示可以在该目录下创建版本库,创建版本库的用户拥有版本库的所有权限。
我们只需要添加一个 repo 并且push gitolite-admin 到服务器,服务器会自动新建
我们需要的新仓库,我们只需在本地客户端指向服务器git即可提交。
相关推荐
Git服务端的搭建需要多用户协作及其权限控制等功能,这需要用户管理权限控制组件的支持,目前这类组件主要有两类:Gitosis和Gitolite。 Gitosis起初功能强大,但于09年不再更新。 Gitolite原本是作为Gitosis的lite...
gitolite-git-lfs 这是 gitolite 的概念证明 git-lfs 存储... 这是用于授予对服务器的访问权限的秘密值。 (参见 django-git-lfs 的 settings.LFS_PERMS_TOKEN 以供参考) 将 git-lfs-authenticate 放入 $LOCAL_CO
git gitolite repo 代码服务器配置记录 为android等源码创建repo服务器,通过gitolite管理权限
讲速了 在centos 下搭建git服务器 用gitolite 来管理权限 很经典 值得拥有
如果不涉及开发者对项目访问权限的管理问题,这是一个最经济高效的解决方案,具体安装过程参考“安装copssh Git Sever的过程.doc”和“安装copssh Git Client的过程.doc”。 二 方案2:cygwin + gitolite 如“参考...
Gitolite 是一款 Perl 语言开发的 Git 服务管理工具,通过公钥(SSH公钥)对用户进行认证,并能够通过配置文件对写操作进行基于分支和路径的的精细授权。
gitolite是控制git权限的软件本身托管在github上但是由于github clone太慢了所以本人下载下来了 打成tar包 需要的童鞋不要客气的拿走吧!
在Git服务管理工具这个领域,主要有三种流行的方案,它们分别是:1.Gitosis-轻量级,开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。2.Gitolite-轻量级,开源项目,使用SSH...
Gitolite自述文件 关于此自述文件 (Github用户:在通过github向我发送任何内容之前,请...git:git,裸机和非裸机的基本用法 您正在某种形式的Unix机器上设置基于ssh的全新gitolite安装。 您具有root用户访问权限,或
如果不涉及开发者对项目访问权限的管理问题,这是一个最经济高效的解决方案,本文介绍的就是这种安装模式。 其实一个小型团队开发一个或者多个在成员中完全公开的小型项目时,个人觉得这是最好的模式。但是尽管本文...
这使得对 git 存储库实施临时身份验证成为可能,因为 gitolite 只关心。 虽然此工具可以简化公钥分发,但管理员仍然必须通过gitolite-admin.conf分配访问权限。截图用法按照安装 。 克隆并安装依赖项: $ git clone...
本文档用通俗易懂的语言描述git的工作原理,基本使用方法和团队协作方法