在Ubuntu上測試安裝一下git server,爲後面項目的代碼管理作準備。記錄流水帳以下, 中間關於git 命令的使用說明不作過多解釋,須要瞭解的請google或者直接git help:html
我用到了三個用戶:eric,root,gitlinux
eric是ubuntu的登錄用戶,root就不用說了,git是用來支持gitolite的system用戶(下面會說到建立過程)。 git
個人server地址是192.168.137.100 github
1.安裝ssh, 準備公鑰文件:shell
安裝和生成公鑰的動做都是在eric用戶中完成的。eric用戶要做爲gitolite的admin用戶。 ubuntu
由於gitolite 經過ssh進行通信和認證,因此須要先確保server端安裝了ssh,我用了openssh:緩存
sodu apt-get install openssh-server openssh-clientbash
安裝完成後就生成公鑰文件, 如下是按照默認參數來生成的:ssh
ssh-keygen -t rsa 測試
生成後的文件路徑在~/.ssh/下面,有id_rsa, id_rsa.pub
先到此爲止,下面會詳細說明一下。
2. 安裝git client,並配置全局用戶名和郵箱
sudo apt-get install git
git config --global user.name 'eric'
git config --global user.email 'youremail@126.com'
3. 安裝gitolite
1)建立專門支持gitolite的用戶
adduser \ --system \ --shell /bin/bash \ --group \ --home-dir /home/git git
git用戶建立完成以後,能夠嘗試配置一下ssh登錄,具體作法以下:(由於不經常使用linux,在理解ssh方面仍是有點吃力,但總算解決了問題,也記住了)
關於ssh的原理,推薦這篇很全面的文章。這篇文章裏面有些演示命令的用戶好像有問題,各位看的時候能夠多查其餘文檔。
咱們已經建立了eric用戶的ssh public key,咱們把id_rsa.pub文件放到/home/git/.ssh/,而後生成authorized_keys文件:
cat id_rsa.pub >> authorized_keys
轉到eric用戶,運行命令:
ssh git@192.168.137.100
正常狀況是,出來connect提示,而後輸入yes,連通。
若是有什麼問題,請google,由於我碰到了host key檢驗不成功的提示,這個問題多是/dev/tty的權限不夠,或者是known_hosts裏面有緩存key形成的,但也有多是由於在彈出connect 提示的時候,你直接回車經過了,默認值是no。(這個真是silly)
鏈接經過以後,那一切就應進入下一步的安裝了。
2) 在git用戶下安裝gitolite server, 推薦官網doc
這裏就直接羅列命令流水了,個人當前路徑是git用戶的根路徑:
git clone https://github.com/sitaramc/gitolite.git
mkdir $HOME/bin
gitolite/install -ln
cp .ssh/id_rsa.pub .ssh/eric.pub
bin/gitolite setup -pk /home/git/.ssh/eric.pub
順利的話,到這一步應該是有個warnning的,就是說明eric已是一個能夠經過shell登錄的用戶了。那應該怎麼作呢?
rm -f .ssh/authorized_keys
bin/gitolite setup -pk /home/git/.ssh/eric.pub
如今轉到eric用戶:
vi .ssh/config
Host gitbox
User git
HostName 192.168.137.100
IdentityFile /home/eric/id_rsa
保存退出
而後就能夠試着拉一下默認庫了:
git clone gitbox:gitolite-admin.git
hope you can enjoy the rest of your journey.....
[Add]如何建立repository
2 steps on this topic
第一步:配置gitolite-admin
在上面搭建的環境中,咱們已經能夠在eric用戶中,pull出來了gitolite-admin代碼。
接下來就要須要進入其源碼路徑中的conf,而後編輯gitolite-admin.conf,加入你的repos以下:
repo <yourreponame>
RW+ = <username>
這裏的username就是在keydir裏面的對應的用戶。
都保存好以後,千萬不要忘記把修改push到server,並且只有把這些修改push到server以後纔會初始化新加的repository。
第二步:配置本地的project
進入你的project路徑, 執行以下的命令:
git init
git add .
git commit -m "init repo"
但願通過上面的配置,你已經完成了git config
接下來就是要設置git server的相關信息了:
git remote add origin gitbox:<yourreponame>
git push origin master:refs/heads/master #若是這句不知道是什麼意思,來一個連接供參考http://stackoverflow.com/questions/7506832/git-push-origin-masterrefs-heads-master-what-does-this-do
後面就本身高興的搞去吧。。