記一次小團隊Git實踐(上)


公司規模不大,成立之初,選擇了svn作為版本控制系統。這對於用慣了git的我來說,將就了一段時間后,極為不爽,切換到git-svn勉強能用。隨后,因為產品需要發布不同的版本,而git-svn對遠程分支的支持又甚為不好,於是提出搭建git環境的想法。鑒於呆過的前公司,沒有一家使用svn不出事的(印象最深的是,阿里雲OS就出現了一次svn重大事故),我不是svn黑,領導欣然同意。

需求

一共php,android,ios三個小團隊,所以分別為php,android端,ios端搭建三個git倉庫。
當然三十個git倉庫都可以,和三個倉庫是一樣。

環境

這里以ubuntu為例(工作上實際使用的是centos)

安裝軟件

sudo apt-get install git
sudo apt-get install openssh-server

ssh配置相關操作:

# 編輯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用戶

專門創建git用戶,便於控制權限和管理

# 添加git用戶
sudo adduser git
# 設置git密碼為jayfeng
sudo passwd jayfeng

初始化倉庫

以android為例子,創建一個對應的倉庫

# 以git用戶身份登陸后,切換到主目錄
cd
# 創建所有git倉庫的總目錄
mkdir git-repo
cd git-repo
# 為android創建ANDROID_CODE倉庫
git init --bare ANDROID_CODE.git

配置ssh key

如果不做這一步,后面從局域網clone代碼的時候每次都要輸入git用戶的密碼,所以這一步的目的是通過配置ssh認證,實現免密碼同步代碼。
下圖展示了如何生成ssh key的私鑰和公鑰:
如何生成ssh key的私鑰和公鑰
私鑰id_rsa自己用,把公鑰id_rsa.pub配置到服務器端git用戶的~/.ssh/authorized_keys(即,把id_rsa.pub的內容添加到authorized_keys新一行),同時配置權限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

並把生成的私鑰id_rsa共享給團隊的開發人員。

局域網訪問

如果服務器的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來說)。

同步發布:http://www.jayfeng.com/2015/07/25/記一次小團隊Git實踐(上)/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM