`
godlogin
  • 浏览: 24480 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

使用gitosis配置git server

 
阅读更多
参考:http://www.open-open.com/lib/view/open1349849744275.html
在配置gitosis之前,服务器需要先安装git server,见前一篇文章。
环境:server:CentOS 6
      client:CentOS 6

1、在服务器安装gitosis
#yum install python python-setuptools
#cd /usr/local/src
#git clone git://github.com/res0nat0r/gitosis.git
#cd gitosis
#python setup.py install 
#显示Finished processing dependencies for gitosis==0.2即表示成功

2、创建git用户,并设置密码
#adduser git
#passwd git

3、创建git目录,并设置权限
#cd /home
#mkdir git
#chown git:git /home/git

4、从客户端生成公钥,上传到服务器,并设置好访问权限
客户端:
#cd ~
#mkdir .ssh
#cd .ssh
#ssh-keygen
#scp ~/.ssh/id_rsa.pub root@192.168.52.133:/tmp

服务器端:
#cd /tmp
#chown git:git id_rsa.pub

5、切换到git用户,并初始化git库
#su git
$gitosis-init < /tmp/id_rsa.pub
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/

修改上传权限:
$su -
#chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update


6、在服务器端创建一个空库
(网上有的帖子说不需要再服务器端创建空库,客户端第一次提交的时候会自动创建,但我试了几次,如果服务器端不创建空库,客户端push会一直提示git库路径不对)

#su git
$cd /home/git/repositories
$git init --bare test-git
Initialized empty Git repository in /home/git/repositories/test-git/.git/

7、在客户端配置管理用户

#mkdir -p /home/client_project
#cd /home/client_project
#git clone git@192.168.52.133:/home/git/repositories/gitosis-admin
#cd gitosis-admin
引用

gitosis-admin目录下keydir是存放客户端公钥的,gitosis.conf是记录各个仓库项目的管理用户。需要注意,keydir目录下的公钥的文件名,需要与公钥文件(.pub)中最后的名字一致。


为项目添加用户:
用户客户端的公钥文件放在keydir目录下,再修改gitosis.conf文件。假设给test-git-new项目添加mender用户:
#cp /tmp/mender.pub /home/client_project/gitosis-admin/keydir
#vi gitosis.conf
引用

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = root@GitClient

[group test-git-new]
writable = test-git-new
members = root@GitClient mender


#git add .
#git commit -am "add member mender"
#git push


8、把客户端文件推到服务器
第6步已经在服务器端创建了空库,指定好远程库路径,把文件推上去:

客户端:
#cd /home/client_project/
#mkdir test-git-new
#cd test-git-new
#git init
#touch Readme
#git add Readme
#git commit -am 'first commit'
#git remote add origin git@192.168.52.133:/home/git/repositories/test-git
#git push origin master


这样客户端就可以push文件了


==========================================
用gitosis管理git用户,不需要执行cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys ,gitosis自动会给authorized_keys 追加公钥。但是用客户端执行的时候,有时会出现ERROR:gitosis.serve.main:Repository read access denied错误,网上说是keydir目录下的pub文件名与gitosis.conf配置里的members名字必须要对应,但即使对应可能还会出这个问题,还有个原因可能如下:
路径:没用gitosis管理git时,clone路径是绝对路径,例如:git clone git@192.168.52.133:/home/git/repositories/px_andriod,出错之后改成git clone git@192.168.52.133:px_andriod.git就好了。(创建空仓库的时候,mkdir px_andriod.git,gitosis.conf中写的还是px_andriod)
分享到:
评论

相关推荐

    Ubuntu下用Gitosis搭建GIT代码服务器及Eclipse下的Git操作

    Ubuntu下用Gitosis搭建GIT代码服务器及Eclipse下的Git操作

    gitosis git服务器架设软件

    git clone git://eagain.net/gitosis.git cd gitosis python setup.py install 3. 添加用户git sudo adduser \ --system \ --shell /bin/sh \ --gecos 'git version control' \ --group \ --disabled-password...

    gitosis-master_20170112

    gitosis-master,有时github下载很慢,因此下载下来。更新到2017/01/12. Linux 下架设git服务器时使用。 git clone https://github.com/res0nat0r/gitosis.git

    git-1.7.12.2 gitosis setuptools 软件

    git-1.7.12.2 gitosis setuptools 搭建 ssh git 所需的所有软件

    gitosis打包文件

    当无法联网或git clone git://eagain.net/gitosis.git失败时,可以用这个下载打包后的文件

    Git中文学习手册 Git入门

    1 5 初次运行 Git 前的配置 1 6 获取帮助 1 7 小结 2 Git 基础 2 1 取得项目的 Git 仓库 2 2 记录每次更新到仓库 2 3 查看提交历史 2 4 撤消操作 2 5 远程仓库的使用 2 6 打标签 2 7 技巧和窍门 2 8 小结...

    Git权威指南PDF完整版

    3.1 在Linux 下安装和使用 Git/ 22 3.1.1 包管理器方式安装/ 22 3.1.2 从源代码进行安装/ 23 3.1.3 从Git版本库进行安装/ 23 3.1.4 命令补齐/ 25 3.1.5 中文支持/ 25 3.2 在Mac OS X 下安装和使用 Git/ 26 3.2.1 以...

    GIT服务器配置

    GIT服务器配置 描述git、gitosis 服务器安装过程

    Git-2.9.2-64-bit(GIT for windows)

    作为开源自由原教旨主义项目,Git没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis, CodeBeamer MR。原本Git的使用范围只适用于Linux / Unix平台,但在Windows平台...

    Git权威指南

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    基于gitolite 搭建Git服务器

    Git服务端的搭建需要多用户协作及其权限控制等功能,这需要用户管理权限控制组件的支持,目前这类组件主要有两类:Gitosis和Gitolite。 Gitosis起初功能强大,但于09年不再更新。 Gitolite原本是作为Gitosis的lite...

    gitosis install

    gitosis 安装详情 gitosis install

    Git-1.7.6-preview20110708(windows版)

    作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis, CodeBeamer MR。原本 Git的使用范围只适用于 Linux / Unix 平台,但逐步并成熟...

    gitosis 打包文件

    gitosis的打包文件,适合于无法联网从git获取clone的主机使用。在sles 11上安装成功;前提需要安装setuptools

    Git学习手册

    1 5 初次运行 Git 前的配置 1 6 获取帮助 1 7 小结 2 Git 基础 2 1 取得项目的 Git 仓库 2 2 记录每次更新到仓库 2 3 查看提交历史 2 4 撤消操作 2 5 远程仓库的使用 2 6 打标签 2 7 技巧和窍门 2 8 小结...

    以cygwin和gitolite在WinServer2008上安装git服务

    关于各种可以在Windows Server 2008上架设git服务器的解决方案 一 方案1:copssh + msysgit 这是一个非常简单而且灵活的方式。如果不涉及开发者对项目访问权限的管理问题,这是一个最经济高效的解决方案,具体安装...

    Git-1[1].7.4-preview20110204.exe

    作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis, CodeBeamer MR。原本 Git的使用范围只适用于 Linux / Unix 平台,但逐步并成熟...

    Git权威指南【样张】

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    在 Ubuntu 下搭建 git gitosis.pdf

    。。。

    在 Ubuntu 下搭建 git gitosis.docx

    。。。

Global site tag (gtag.js) - Google Analytics