Centos搭建git服务器

在自己的云主机上搭了个git服务器,方便平时写代码,这里记录下步骤,方便以后自己查看,推荐直接看参考原文:Centos 6.4搭建git服务器(完全参考此文)。

安装依赖

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y

git安装

git --version  #看是否安装过git
yum install git   #没有则安装

Gitosis配置

Gitosis安装

权限管理工具gitosis的安装,需要用到python-setuptools

yum install python python-setuptools
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis/
python setup.py install

公钥管理

可以通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者。

ssh-keygen -t rsa   #一路回车,不需要设置密码
scp ~/.ssh/id_rsa.pub username@ip:~

Gitosis初始化

服务器上生成git用户,使用git用户并初始化gitosis
创建git版本管理用户 git

useradd -c "git version manager" -m -d /home/git -s /bin/bash git
passed git

初始化mitosis

mv id_rsa.pub /home/git/
su git
cd 
gitosis-init < ./id_rsa.pub
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update  #添加权限

服务器端配置就ok了,下一步在开发者机器上配置

Git项目管理

Clone项目管理仓库

mkdir ~/gitrepo
cd gitrepo
git clone git@ip:gitosis-admin.git   #克隆项目管理仓库

创建一个项目

项目权限管理

创建一个新项目要在gitosis-admin.git的配置文件中添加项目,并提交到git服务器告诉服务器我有个新项目。

$cd ~/gitrepo/gitosis-admin
$vim gitosis.conf
[group test]            # 具有写权限的组名称
writable = test         # 该组可写的项目名称
members = XXX #有写权限的组成员

提交到服务器

$git add .
$git commit -a -m "add test repo"
$git push

创建项目

本地创建新项目test提交到远程仓库

$cd ~/repo 
$mkdir test   
$cd test   #对于新的项目,需要先在本地初始化为 Git 项目,添加要管理的文件并作首次提交
$git init 
$touch ready

提交到远程服务器

$git add .
$git commit -a -m "init test"
$git remote add origin git@192.168.186.129:test.git
$git push origin master

服务端/home/git/repositories下就会产生test.git项目

项目添加协同开发(还没试过)

项目的开发人员一般不止一个,就要添加项目协同开发者。这里需要协同开发者的公钥,上传至git服务器。

$cd ~/gitrepo/gitosis-admin/keydir
$ mv ~/id_rsa.pub liu@xx.pub   #修改公钥为`主机名.pub`
$vim gitosis.conf   #添加成员
[group test]           
writable = test         
members = xxx@xxx-pc liu@xx

然后将添加数据后的目录更新到git服务器

$git add keydir/liu@xx.pub
$git commit -am " granted liu@xx commit rights to test " 
$git push

注解:gitosis实际上是从服务器端的/home/git/repositories/gitosis-admin/.gitosis.conf文件读取信息的,通过以上操作,会将新的权限信息写入到该文件中,如果搞错了配置,导致失去了推送权限,可以通过修改该文件来重新设定,如果你手工编辑该文件的话,它会一直保持到下次向 gitosis-admin 推送新版本的配置内容为止。

推送完成后,新加的协同开发者就可以进行项目的开发了。

完全参考这篇文章:Centos 6.4搭建git服务器

你可能感兴趣的:(centos,git,服务器,云主机,搭建)