公司規模不大,成立之初,選擇了svn做爲版本控制系統。這對於用慣了git的我來講,將就了一段時間後,極爲不爽,切換到git-svn勉強能用。隨後,由於產品須要發佈不一樣的版本,而git-svn對遠程分支的支持又甚爲很差,因而提出搭建git環境的想法。鑑於呆過的前公司,沒有一家使用svn不出事的(印象最深的是,阿里雲OS就出現了一次svn重大事故),我不是svn黑,領導欣然贊成。php
一共php,android,ios三個小團隊,因此分別爲php,android端,ios端搭建三個git倉庫。
固然三十個git倉庫均可以,和三個倉庫是同樣。android
這裏以ubuntu爲例(工做上實際使用的是centos)ios
sudo apt-get install git sudo apt-get install openssh-server
ssh配置相關操做:git
# 編輯ssh配置 sudo vim /etc/ssh/sshd_config # 查看ssh server是否啓動 # 若是隻有ssh-agent那ssh-server尚未啓動,若是看到sshd那說明ssh-server已經啓動了 ps -e | grep ssh # 啓動ssh服務 sudo /etc/init.d/ssh start # 重啓ssh服務 sudo /etc/init.d/ssh resart # 中止ssh服務 sudo /etc/init.d/ssh stop
專門建立git用戶,便於控制權限和管理ubuntu
# 添加git用戶 sudo adduser git # 設置git密碼爲jayfeng sudo passwd jayfeng
以android爲例子,建立一個對應的倉庫vim
# 以git用戶身份登錄後,切換到主目錄 cd # 建立全部git倉庫的總目錄 mkdir git-repo cd git-repo # 爲android建立ANDROID_CODE倉庫 git init --bare ANDROID_CODE.git
若是不作這一步,後面從局域網clone代碼的時候每次都要輸入git用戶的密碼,因此這一步的目的是經過配置ssh認證,實現免密碼同步代碼。
下圖展現瞭如何生成ssh key的私鑰和公鑰:
私鑰id_rsa本身用,把公鑰id_rsa.pub配置到服務器端git用戶的~/.ssh/authorized_keys(即,把id_rsa.pub的內容添加到authorized_keys新一行),同時配置權限:centos
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
並把生成的私鑰id_rsa共享給團隊的開發人員。bash
若是服務器的IP是192.168.1.18,那麼局域網的機器就能夠經過下面的方式訪問了:服務器
# 拷貝私鑰id_rsa到.ssh目錄 mv id_rsa ~/.ssh # 若是提示權限不對(bad permission 或者 permission too open),請按以下配置 cd ~/.ssh chmod 700 id_rsa # 團隊成員訪問git倉庫 git clone git@192.168.1.18:~/git-repo/ANDROID_CODE.git
小團隊使用git,一方面要利用起git的強大功能,一方面要還要摒棄冗餘的配置。本次記錄了局域網內的git環境搭建。接下來的難點就是如何在公司中培訓推廣git的使用,克服初學git的陡峭曲線>(相對於svn來講)。ssh
同步發佈:http://www.jayfeng.com/2015/07/25/記一次小團隊Git實踐(上)/