前陣子公司須要,讓我搭個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
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的安裝,須要用到python-setuptools
windows
[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
服務器上生成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 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/