輕鬆搭建git服務器

最近svn頻繁出怪問題, 也可能是我vps不行吧(512MB內存, 出問題時的負載不足1, 內存120空閒...), 實在忍不住, 乾脆換git了, 下面把摸索出來的東西記錄下, 只簡單說下而已..

個人怎麼使用我就不說了, 如果你剛接觸git也可以參考文章末尾我提供的參考文檔; 這裏只說下git服務器的搭建, 下面的內容都建立在我認爲你已經大致會使用git init, git add, git commit等簡單命令的基礎上.

另外關於認證方式, 我們選擇單用戶, 多證書的方式, github就是如此, 因爲是ssh訪問, 不可能每個人在服務器上有一個用戶, 關於幾種認證方式請參考文章末尾我提供的參考文檔, 那下面我們開始吧.

架設git服務器的之前, 我們需要一個已經存在的git倉庫, 並克隆成一個純倉庫, 就是不包含工作目錄內容的倉庫, 方法如下:
git clone --bare demo demo.git //我假設你已經有了demo這個倉庫

然後將這個純倉庫(demo.git)上傳到服務器, 假如我們所有的git倉庫都放置在/data/git下(需要給git用戶權限, 用戶自建), 並且服務器上也已經安裝好git, 也能直接通過終端訪問git命令
scp demo.git [email protected]:/data/git
//回車, 輸入密碼

實際上我們已經安裝成功了. 那麼團隊協作的人怎麼使用呢?
在之前我們說了, 使用單用戶(git)多證書的訪問方式, 那麼就需要首先生成證書, 並且公匙寫入到服務器
ssh-keygen -t rsa -C "[email protected]" //直接回車幾次完成
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/
ssh [email protected]
cd ~/.ssh
cat id_rsa.pub >> authorized_keys //是">>"哦, 追加;

以後如果團隊增加成員, 只需要把他生成的公匙追加到authorized_keys即可.
ADD: 2011-10-19 另外上面的scp以及之後的代碼是在第一次部署的才這樣, 後期應該禁止git密碼登錄, 再需要寫入公匙就需要ROOT來操作了

假設我的公匙已經寫入到用戶git跟目錄下.ssh/authorized_keys裏了, 那麼我不需要密碼就可以訪問git倉庫了, 現在來看看我們怎麼協調工作吧
git config --global user.name "fengqi"
git config --global user.email "[email protected]"
cd /e/www/
git clone [email protected]:/data/git/demo.git

等待clone完成, 就跟我們單人使用git差不多了, 其它人也是, 首先寫入自己生成的公匙(當然這個以後應該就只能項目管理人員可以操作了), 然後從服務器上clone下來即可.

進階使用請詳讀相關資料, 期待你發現GIT的美:
http://dl.windphp.com/Version/progit.zh.pdf
http://progit.org/book/zh/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章