Git Server 架設 (透過SSH 共享存取) Linux (Ubuntu 12.04)

為了一個小專案,所以順手把Git Server架設起來,因為是小型專案,所以存取人數不多,所以使用最簡單的SSH連線方式透過統一git帳號共同存取server上的.git檔。以下就是簡單的架設過程:

環境參數

系統:Ubuntu 12.04

local machine
  1. ssh test.com #先連線到要架設server(test.com)
  2. apt-get install git #安裝git套件
  3. ssh-keygen -t rsa # 產生 id_rsa, id_rsa.pub
  4. mv id_rsa, id_rsa.pub .ssh/ # 放到.ssh下
  5. scp id.rsa.pub test.com:/tmp/id_rsa_user.pub # 將檔案放到Server端
Server端設定
  1. adduser git –disabled-password # 建立一個 git 帳號, 所有動作都由 git 來執行, 可避免權限問題
  2. sudo chmod 777 /var/cache/git # 將我們要建立git repository資料夾的權限打開
  3. sudo su – git # 切換成 git 權限
  4. mkdir .ssh/ # 建立.ssh/目錄
  5. cat /tmp/id_rsa_uesr.pub >> ~/.ssh/authorized_keys # 將大家的id_rsa.pub放進來這個git帳號的authorized_keys,這樣大家都可以透過git帳號共同存取project(專案名稱).git
  6. mkdir -p /var/cache/git/project.git # 建立project.git準備開始
  7. cd /var/cache/git/project_name.git # 進入專案git目錄下
  8. git init – -bare – -shared # 觸發專案git啟動

以上就設定完成了,可以準備在本機把專案拉下來了

local machine
  1. git clone git@test.com:/var/cache/git/project.git # 將專案拉來本機
  2. cd project # 進入專案目錄
  3. vim test.txt or README # 新增一個檔案
  4. git add test.txt # 加入git版本控制
  5. git commit -m ‘init commit’ # 初次commit進git
  6. git push origin master # 更新回REMOTE SERVER,只有在第一次要(origin master),之後不用
避免git帳號直接連線安全性問題

vim /etc/passwd # 修改 /bin/sh => /usr/bin/git-shell, git-shell 只能做 git 操作, 無法 Login.

使用pre-commit hoot避免把console.log commit進去版本控制避免錯誤
  1. 到專案目錄下的.git/hooks/
  2. cp pre-commit.sample pre-commit
  3. vim pre-commit
  4. 把以下這行放進去檔案裡:

  5. chmod +x pre-commit # 更改權限為可以執行的

以上就做完了,這個簡單的git server架設試用於小組團隊的版本控管,如果需要更多權限管理的功能可以參考Gitosis或是 Gitolite。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *