用GitBlit 和 VS GitSourceControlProvider 搭建基於 Http(s) 的 Git 工作平台


用GitBlit 和 VS GitSourceControlProvider 搭建基於 Http(s) 的 Git 工作平台

說明:

    該方案可用於搭建基於Http(s)的git服務器,且客戶端與visual studio集成,是一套很實用的企業內部git部署架構。

    試過好幾套window平台下的git方案,這套方案是最簡單的,安全權限上也很容易控制。希望對大家有用~

架構:

    服務器端:msysgit+gitblit

    客戶端:msysgit+tortoiseGit+ visual studio git source control provider

特點:

    服務器端和客戶端用https進行通訊(不用SSH,簡單)

    服務器端有網站支持,可進行用戶權限控制,跟蹤、統計,很直觀

    服務器端可派發證書給用戶,用戶安裝證書后才可以訪問服務器端GIT資源,安全

 

服務器端

1.安裝msysgit

Msysgit是windows版本的git環境

下載地址:http://code.google.com/p/msysgit/

安裝:

    (1)為了避免路徑問題,安裝目錄最好沒有空格和中文(如c:\git\)

    (2)其它的一路默認下去即可

最好設置下系統路徑:

    path C:\ Git\bin;C:\Git\libexec\git-core;%PATH%

 

2.安裝GitBlit

2.1簡介

Gitblit是用java寫的git服務端網站(類似github),以http/https方式提供git服務,可進行用戶權限控制,跟蹤、統計,直觀、簡單、強大、易用。

官方網站:http://gitblit.com/

下載完畢后解壓到一個目錄(如d:\gitblit\ )

2.2提供http服務

(1)先確保安裝了java sdk

(2)運行gitblit.cmd即可,即可創建git網站.

(3)如果端口沖突跑不起來,打開data\gitblit.properties文件修改下端口參數,如:

         server.httpPort = 8080                  # http服務端口

         server.httpBindInterface = localhost       # http 綁定的地址(域名或ip)

(4)可打開瀏覽器查看:http://localhost:8080

     

    首次登錄,管理員賬戶密碼均為admin,請改掉!

    進入后可設置代碼庫(respository),用戶(user),團隊(team)

    默認的git倉庫都建在data/git/ 文件夾內

    更詳細的操作可查看docs/文件夾內的文檔

(5)可用git 命令進行操作,如:

    Git clone http://admin@localhost:8080/git/test.git

2.3提供https服務

Gitblit可提供https服務,可在公網上提供安全訪問渠道,可有效的鑒權、防竊聽和防篡改。詳細步驟可參照http://gitblit.com/setup.html。以下為簡要說明:

(1)修改/data/gitblit.properties文件,如

    Server.httpPort = 0                    # 設置為0的話會關閉http服務

    Server.httpsPort = 8443                 # 設置https服務端口

    Server.httpsBindInterface = xxx.com        # https 服務綁定的主機地址(域名或IP)

    Server.certificateAlias = xxx.com          # https ca證書綁定的主機地址(域名或IP)

    Server.requireClientCertificates = true     # 客戶端要訪問必須強制使用https協議

    

(2)創建https ssl證書

運行authority.cmd,進入Gitblit certificates authority 授權設置窗口:

     

錄入CA證書基本信息

    點擊按鈕,彈出CA證書基本信息的錄入窗口(該窗口在首次運行的時候也會彈出,填寫一次就可以了)

     

    Site name里面寫該主機的ip地址或域名

創建主機CA證書(用於聲明該主機的身份)

    點擊按鈕,彈出創建主機CA證書的窗口,錄入保存。

    

創建用戶個人證書(用於聲明該用戶的身份)

    選中某個用戶,點擊右側的new certificate按鈕

     

查看證書

    這兩步操作完成后,可在/data/ certs/目錄下看到生成的證書

    可直接將里面的zip壓縮包發給團隊成員安裝。

(3)用電子郵件將證書發送給團隊成員(可選步驟)

設置郵件服務器信息:

    

若有需要,可修改郵件模版文件

     

在之前的CA證書窗口中選擇用戶,點擊按鈕將證書包發郵件給用戶

 

(4)重新啟動 gitblit.cmd

客戶端安裝壓縮包內的.p12證書 后,即可以https方式(ie或chrome)訪問網站:https://www.xxx.com:8443/

更詳盡的客戶端使用說明請參考后繼章節。

客戶端

1.安裝msysgit

Msysgit是windows版本的git環境

下載地址:http://code.google.com/p/msysgit/

安裝注意:

    (1)為了避免路徑問題,安裝目錄最好沒有空格和中文(如c:\git\)。

    (2)可不用集成資源管理器菜單,因為后面的tortoisegit還會集成。

    (3)其它的一路默認下去即可

最好設置下系統路徑:

    path C:\ Git\bin;C:\Git\libexec\git-core;%PATH%

2.安裝HTTPS SSL客戶端證書

2.1 查看管理員發給你的證書包

里面有若干的證書文件(假設用戶名為cjh,且保存在d:\gitclient\_keys\ssl\cjh\目錄下):

 

Cjh.p12 包含了私鑰和公鑰和CA證書(供瀏覽器用)

Cjh.pem 包含了私鑰和公鑰和CA證書(供git客戶端用)

--------------------------------------------------------------------------------------

Cjh.cer 私鑰

Ca.cer 服務器端公鑰證書

Readme.txt 安裝指導

2.2 安裝.p12證書

該.p12證書是供瀏覽器用的。雙擊安裝.p12文件,一路默認,會提示你輸入保護密碼(問管理員)。安裝完畢后可用IE和chrome訪問服務端網站,firefox的p12安裝請看安裝指導。結束后可在internet選型->內容->證書內找到兩個證書:

    (1)受信任的根證書頒發機構: git.xxx.com的CA證書,用於標志該網站的身份

    (2)個人證書:客戶端用該證書連接git.xxx.com的https服務。

     

安裝p12證書后,即可訪問GIT服務器端網站,如 https://git.xxx.com:8443/

 

2.3 配置pem證書

該證書是git客戶端用的。

    openssl rsa -in "d:\gitclient\_keys\ssl\cjh\cjh.pem" -out "d:\gitclient\_keys\ssl\cjh\cjh.key"

    git config --global http.sslcert  "d:\gitclient\_keys\ssl\cjh\cjh.pem"

    git config --global http.sslkey   "d:\gitclient\_keys\ssl\cjh\cjh.key"

    git config --global http.sslVerify false

    git config --global --list

設置.pem證書成功后就可以用git訪問服務器https git服務了

 

3.安裝tortoiseGit

http://code.google.com/p/tortoisegit/wiki/Download

一路默認過去即可。安裝成功后,資源管理器右鍵菜單將集成TortoiseGit。

4.安裝VisualStudio GIT插件

工具->擴展管理器->搜索並安裝git source control provider,重新啟動visual studio

工具->選項->源代碼管理(source control): 選擇git source control provider

設置git source control provider中的tortosegit路徑C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe

        

 

5.GIT基本操作

5.1 clone倉庫

在d:\gitclient\目錄內空白處,右鍵菜單->Git Clone,從服務器端將庫克隆下來,地址

    https://admin@git.xxx.com:8443/git/test.git

也可以直接打命令行:

    git clone https://admin@git.xxx.com:8443/git/test.git d:\gitclient\test

    Cloning into 'test'...

    remote: Counting objects: 11, done

    remote: Finding sources: 100% (11/11)

    remote: Getting sizes: 100% (7/7)

    remote: Total 11 (delta 0), reused 11 (delta 0)

    Unpacking objects: 100% (11/11), done.

 

5.2 Commit(到本地庫)

    在visualstudio中用右鍵菜單進行commit操作(若未安裝tortoisegit,可直接用git bash命令行工具)

                  

         Commit時必須寫點東西;commit結束后可以push到服務器端。

                  

                  注:commit全選文件的技巧:用shift鍵全選,再點擊checkbox。

5.3 Push(到服務器庫)

   

 

 


免責聲明!

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



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