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

公司規模不大,成立之初,選擇了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用戶

專門建立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

配置ssh key

若是不作這一步,後面從局域網clone代碼的時候每次都要輸入git用戶的密碼,因此這一步的目的是經過配置ssh認證,實現免密碼同步代碼。
下圖展現瞭如何生成ssh key的私鑰和公鑰:
如何生成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實踐(上)/

相關文章
相關標籤/搜索