git server 搭建指南


 搭建git服務器的經驗總結

一: Server端的設置
1. 安裝 git, git-core
2. 安裝 ssh-server. (代碼上傳通道)
3. 創建git 用戶 指定其目錄 和所在組
4. 在git的home目錄下創建 repo_name.git 目錄
5. 在git home 目錄下 初始化repo_name.git 的服務器端裸倉庫: git init --bare --shared Repo_name.git   (默認生成一個master分支)
6. 搜集用戶的ssh public key ,放入到 .ssh 目錄下,以實現ssh自動登陸,此過程較為復雜,分為兩大步驟:
     1.配置sshd_config文件並重啟sshd,
     2.將用戶上傳的rsa pub key 添加到authorized_keys文件中。 
     詳細過程參見  ” 三: ssh的受信用戶的添加 
7. 添加遠程倉庫的develop / release分支:  git branch develop  ;  
8. 搭建gitweb, 用於方便開發者在線查看git提交與修改。參見 "  四:搭建gitweb的方法 "  ; 本步驟可選。
 
 
二:git客戶端使用方法
 
0. 客戶端: ssh-keygen -t rsa 生成密鑰
1. 客戶端: 將生成的id_rsa.pub 傳給git管理者。對應於Server端的第六點。
2.客戶端 : git clone git@172.26.186.177:/home/git/Repo_name.git
3.客戶端:  添加代碼
4.客戶端: git  status ;  git add . ; git commit -m "comment for each commit"
5.客戶端: 添加遠程倉庫:  git remote add remote_server_name git@172.26.186.117:/home/git/repo_name.git   本地:git remote add local D:\\code\\reponame.git
6.客戶端: 配置git config --global, 對於你的每次提交都是必須的,這樣在git server端的gitweb網站上可以清楚地看到誰提交了,email多少。
                1.  $ git config --global user.name  wangwang
            2. $ git config --global user.email  wangwang@tec.com
7.客戶端: push 本地代碼到 遠程倉庫的指定分支:  git push remote_server_name  local_branch_name:remote_branch_name ;  (此時可以指定提交到遠程分支的develop 還是 master)
 
 
 三: ssh的受信用戶的添加 
 為實現ssh自動登陸,需搜集用戶的ssh public key ,放入到 .ssh 目錄下的authorized_keys文件末尾,此過程較為復雜,分為兩大步驟:
     1.配置sshd_config文件並重啟sshd,
     2.將用戶上傳的rsa pub key 添加到authorized_keys文件中。 
 
詳細過程如下:
 
I. 配置sshd_config文件,並重啟:
     1. su root  ;sshd_config位於/etc/ssh/ 文件夾下,需要使用root權限,同時如果出現 could not load host key: rsa_key dsa_key ecdsa_key,     也是由於這個原因,因為這三個文件只有root用戶擁有讀權限。
     2. vim sshd_config 
     3. 取消AuthorizedKeysFile的注釋,並修改為 AuthorizedKeysFile      /home/git/.ssh/authorized_keys 
     4.重啟sshd : /usr/sbin/sshd
 
II. 上傳rsa pub key, 並將其添加到authorized_keys文件中。

  1. scp id_rsa.pub git@172.26.186.117:/home/git/        ; 遠程拷貝
  2. mv id_rsa.pub  rename.pub                                   ; 重命名以避免與。ssh文件夾中的已有文件重名。
  3. mv rename.pub .ssh/                                            ; 移動到.ssh
  4. cat rename.pub >> authorized_keys                      ; 將該用戶 添加到受信任的ssh-rsa 列表中, 很多人將此authorized_keys誤認為是文件夾,從而導致添加后,客戶端登陸依然失敗。
注意:如果用戶的id_rsa.pub 已經加入到authorized_keys, 但 git clone git@172.26.186.117:/home/git/PmsAndroid.git 后出現如下的提示信息
Agent admitted failure to sign using the key.
git@172.26.186.117's password: 
則說明授權驗證的ssh-agent 沒有將密鑰隨着請求, 需要使用ssh-add 來添加, 若ssh-add添加失敗,請先運行ssh-agent 。
 
 
四:搭建gitweb的方法
   1. 在一個倉庫目錄下,使用git instaweb 命令即可啟動運行。
默認是在1234端口。
 
 
五: 搭建gitosis / gitblit ,以方便管理員遠程管理git server 的repostries。
 
 
 
六: git Server端 repo的訪問權限控制
 


免責聲明!

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



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