Centos 6.4搭建git服務器【轉】

前陣子公司須要,讓我搭個Git服務器,把以前用的SVN上代碼遷移到git上去,因此就在阿里雲主機上搭了一個,記錄了下安裝過程,留存文檔以備查閱。本篇本章只涉及搭建部分的操做,更多git的使用能夠參考文檔python

系統環境

主機環境

hadoop-slave    192.168.186.129

 

系統版本信息git

[root@hadoop-slave ~]# cat /etc/redhat-release 
CentOS release 6.4 (Final)

 

安裝依賴

[root@hadoop-slave ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y

 


Centos系統會默認安裝一個
git-1.7.1,要移除一下。Git安裝

[root@hadoop-slave ~]# git --version
git version 1.7.1
[root@hadoop-slave ~]# yum remove git -y

 


下載源碼包
 github

[root@hadoop-slave ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz
[root@hadoop-slave ~]# tar -zxf git-2.5.0.tar.gz
[root@hadoop-slave ~]# cd git-2.5.0
[root@hadoop-slave git-2.5.0]# ./configure --prefix=/usr/local/git
[root@hadoop-slave git-2.5.0]# make && make install
[root@hadoop-slave git-2.5.0]# ln -s /usr/local/git/bin/* /usr/bin/
[root@hadoop-slave git-2.5.0]# git --version   #顯示版本號,安裝成功
git version 2.5.0
[root@hadoop-slave git-2.5.0]#

 

Gitosis配置 vim

Gitosis安裝

權限管理工具gitosis的安裝,須要用到python-setuptoolswindows

[root@hadoop-slave ~]# yum install python python-setuptools
[root@hadoop-slave ~]# git clone git://github.com/res0nat0r/gitosis.git
[root@hadoop-slave ~]# cd gitosis/
[root@hadoop-slave gitosis]# python setup.py install
……
Using /usr/lib/python2.6/site-packages
Finished processing dependencies for gitosis==0.2    #安裝成功

 

公鑰管理

管理git服務器須要一些管理者,能夠經過上傳開發者機器的公鑰到服務器,添加成爲git服務器的管理者。
如下是把windows機器做爲git的管理者,在git bash生成公鑰並上傳至服務器的過程。bash

$ssh-keygen -t rsa   #一路回車,不須要設置密碼
$scp ~/.ssh/id_rsa.pub root@192.168.186.129:~

 


登陸服務器
 服務器

[root@hadoop-slave ~]# ls id_rsa.pub 
id_rsa.pub

 

Gitosis初始化

服務器上生成git用戶,使用git用戶並初始化gitosis
建立git版本管理用戶 gitssh

[root@hadoop-slave ~]# useradd -c "git version manager" -m -d /home/git -s /bin/bash git
[root@hadoop-slave ~]# passwd git

 

初始化gitosiscurl

[root@hadoop-slave ~]# mv id_rsa.pub /home/git/
[root@hadoop-slave ~]# su git
[git@hadoop-slave root]$ cd 
[git@hadoop-slave ~]$ gitosis-init < ./id_rsa.pub 
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
[git@hadoop-slave ~]$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update  #添加權限

 

ok了,服務器端配置就ok了,下一步在開發者機器上配置 工具

Git項目管理

Clone項目管理倉庫

服務端配置完畢,如今轉到管理客戶端,進入管理機器(上傳公鑰的機器),打開git bash

$mkdir ~/gitrepo
$cd gitrepo
$git clone git@123.56.138.94:gitosis-admin.git   #克隆項目管理倉庫

 


問題1:
 

PS:若是clone報錯了,密鑰的問題和git用戶密碼的問題,(使用絕對路徑/home/git/repositories/gitosis-admin.git能夠下載,可是不推薦)
查看gitosis.conf中密鑰的members的名稱爲是不是管理機器的主機名.pub

項目權限管理

管理文件clone下來後,能夠對項目進行管理。若要先建立一個新項目,要在gitosis-admin.git的配置文件中添加項目,並提交到git服務器告訴服務器我有個新項目。

$cd ~/gitrepo/gitosis-admin
$vim gitosis.conf
[group test]            # 具備寫權限的組名稱
writable = test         # 該組可寫的項目名稱
members = liuyan@liuyan-pc #有寫權限的組成員


 

提交到服務器

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


 

建立新項目

管理文件提交後,本地建立的新項目test就能夠提交到遠程倉庫了。

$cd ~/repo 
$mkdir test   
$cd test   #對於新的項目,須要先在本地初始化爲 Git 項目,添加要管理的文件並做首次提交
$git init 
$touch readme

 


提交到遠程服務器
 

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

 

git push origin master的意思就是上傳本地當前分支代碼到master分支。git push是上傳本地全部分支代碼到遠程對應的分支上 

服務端查看

[git@hadoop-slave repositories]$ ls
gitosis-admin.git  test.git

 

test倉庫已經存在,能夠進行操做了。

項目添加協同開發

項目的開發人員通常不止一個,就要添加項目協同開發者。這裏須要協同開發者的公鑰,上傳至git服務器。

$cd ~/gitrepo/gitosis-admin/keydir
$ mv ~/id_rsa.pub liuyan@zizhuoy.pub   #修改公鑰爲`主機名.pub`
$vim gitosis.conf   #添加成員
[group test]           
writable = test         
members = liuyan@liuyan-pc liuyan@zizhuoy

 


而後將添加數據後的目錄更新到git服務器
 

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

 

註解:gitosis其實是從服務器端的/home/git/repositories/gitosis-admin/.gitosis.conf文件讀取信息的,經過以上操做,會將新的權限信息寫入到該文件中,若是搞錯了配置,致使失去了推送權限,能夠經過修改該文件來從新設定,若是你手工編輯該文件的話,它會一直保持到下次向 gitosis-admin 推送新版本的配置內容爲止。

推送完成後,新加的協同開發者就能夠進行項目的開發了。

轉自

Centos 6.4搭建git服務器 | Yan's bloghttp://yanliu.org/2015/08/20/Centos-6-4%E6%90%AD%E5%BB%BAgit%E6%9C%8D%E5%8A%A1%E5%99%A8/

相關文章
相關標籤/搜索