Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 架构 > SVN > 正文

CentOS下搭建Git服务器Gitosis

时间:2016-06-26 15:09 来源:网络整理 作者:linux系统 阅读:

1.编译装git

 

 

Sql代码  

1$ wget #目前最新版本  

2$ tar -xzvf git-1.7.3,tar.gz #解压出来  

3$ cd git-1.7.3 #进入目录  

4$ yum install  -y gettext-devel expat-devel curl-devel zlib-devel openssl-devel #-y是默认自动安装,安装编译时用到的东东  

5$ ./configure --with-curl=/usr/local  #git安装路径  

6$ make && make install #最小化安装的CentOS是没有make的,可以 yum install make 进行安装  

7$ git --version  #查看版本号,确实git是否安装成功  

 

 

2.安装gitosis

 

 

Sql代码  

1$ yum install python python-setuptools  

2$ git clone git://eagain.net/gitosis.git  

3$ cd gitosis  

4$ python setup.py install  

 

 

 

3.在开发机器上生成公共密钥(用来初始化gitosis)

 

 

Sql代码  

1$ ssh-keygen -t rsa #不需要密码,一路回车就行(在本地操作)  

2$ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上传你的ssh public key到服务器  

 

当git中遇到这样的问题时候

Agent admitted failure to sign using the key.
Permission denied (publickey).

运行:ssh-add就可以了

 

 

4.初始化gitosis

 

 

Sql代码  

1$ adduser git # 新增一个git用户  

2$ su - git # 切换倒git用户下  

3$ gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是刚刚传过来的  

4$ rm /tmp/id_rsa.pub # id_rsa.pub已经无用,可删除.  

 

 

5.获取并配置gitosis-admin

 

 

Sql代码  

01$  git clone git@xxx:gitosis-admin.git  # 在本地执行,获取gitosis管理项目  

02$  vi gitosis-admin/gitosis.conf  # 编辑gitosis-admin配置文件  

03# 在gitosis.conf底部增加  

04[group 组名]  

05writable = 项目名  

06members = 用户  # 这里的用户名字 要和 keydir下的文件名字相一致  

07# VI下按ZZ(大写)两次会执行自动保存并退出,完成后执行  

08$ git commit -a -m “xxx xx” # 要记住的是,每次添加新文件必须执行git add .,或者git add filename, 【linux教程】 ,如果没有新加文件,只是修改的话就可以执行此句。  

09# 修改了文件以后一定要PUSH到服务器, 【51运维网】 【 linux操作系统】 ,否则不会生效。  

10$ git push  

 

在windows下 用git-bash生成密钥对 ssh-keygen -t rsa

 1.在A机下生成公钥/私钥对。

[chenlb@A ~]$ ssh-keygen -t rsa -P ''


-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/chenlb下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。

[chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub 
chenlb@192.168.1.181's password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00


由于还没有免密码登录的,所以要输入密码。

3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。

[chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[chenlb@B ~]$ chmod 600 .ssh/authorized_keys


authorized_keys的权限要是600


windows客户端要用tortorisePLink的方式 连接,并用配置repo的时候,要写全部路径,并且不要加上分支名git@88.88.88.88:repositories/hello.git

 

 cd repositories git init --bare project1.git

新建项目

到此步就算完成gitosis的初始化了。接下来的是新建一个新项目到服务器的操作,如第5步中配置gitosis.conf文件添加的是

Sql代码  

01[group project1] # 组名称  

02writable = project1 # 项目名称  

03members = xxx # 用户名xxx为[group gitosis-admin]中的members一样  

 

04# 记得执行

Sql代码  

01$ git commit -a -m “添加新项目project1,新项目的目录是project1,该项目的成员是xxx“ # “”里的内容自定  

02$ git push  

 

07# 进入到项目目录

Sql代码  

01$ cd /home/用户/project1 # project1要与gitosis.conf文件配置一致  

02$ git init  

03$ git add . # 新增文件 留意后面有一个点  

04$ git commit -a -m “初始化项目project1″  

 

12# 然后就到把这个项目放到服务器上去

Sql代码  

01$ git remote add origin git@xxx:project1.git # xxx为服务器地址  

02$ git push origin master  

 

15# 也可以把上面的两步合成一步

Sql代码  

01$ git push git@xxx:project1.git master  


 

7.创建新的repositories

打开gitosis.conf文件,你将看到

[group gitosis-admin]

writable = gitosis-admin

members = elton@macbook

这个是管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名。

在这个文件后面加入:

[group myteam]

members = elton@macbook

writable = free_monkey

这里你定义了一个叫myteam的组,授予elton@macbook这个用户写“free_monkey”这个repo的权限

git commit -a -m "Allow elton write access to free_monkey"

git push

上面的操作就更新了服务端的权限。

下面就开始创建free_monkey的repo

mkdir free_monkey

cd free_monkey

git init

创建 .gitignore 文件,用于忽略某些不需要进行代码管理的内容,如rails的应用可能如下:

.DS_Store

log/*.log

tmp/**/*

config/database.yml

db/*.sqlite3

提交代码:

git remote add origin git@YOUR_SERVER_HOSTNAME:free_monkey.git

git add .

git commit -a -m "initial import"

git push origin master:refs/heads/master

接下来,可以增加成员的公钥到系统中了

cd gitosis-admin

cp ~/alice.pub keydir/

cp ~/bob.pub keydir/

git add keydir/alice.pub keydir/bob.pub

修改gitosis.conf

[group myteam]

- members = jdoe

+ members = jdoe alice bob

writable = free_monkey

提交修改:

git commit -a -m "Granted Alice and Bob commit rights to FreeMonkey"

git push

其它成员就可以获取代码了

git clone git@YOUR_SERVER:free_monkey.git

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《CentOS下搭建Git服务器Gitosis》技术文章,《CentOS下搭建Git服务器Gitosis》详细使用和说明,有时《CentOS下搭建Git服务器Gitosis》可能不完善、敬请谅解!如果《CentOS下搭建Git服务器Gitosis》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片