天天看點

在區域網路内軟體版本控制,gitblit(windows7)+git(麒麟linux)+Qt一、簡單介紹gitblit和git的關系二、在32位windows7部署gitblit三、在麒麟linux系統安裝git四、在Qt使用git五、結語及下載下傳連結

因工作需要,将在區域網路内部實作軟體版本控制,管理諸多軟體源代碼。

綜合考慮,決定将版本控制伺服器gitblit搭建在windows7平台下,然後在各個客戶機(麒麟linux系統)上使用Qt+git的方式,送出源代碼。

大緻流程如下:

  1. 在windows7上搭建java環境
  2. 在windows7上部署gitblit
  3. 将gitblit添加至計算機的啟動服務中,實作開機自動啟動
  4. 在linux系統中,安裝部署git
  5. 在Qt中使用git

    部署gitblit及git的方法

    • 一、簡單介紹gitblit和git的關系
      • (一)為什麼要軟體版本控制
      • (二)怎麼實作軟體版本控制
    • 二、在32位windows7部署gitblit
      • (一)部署java環境
      • (二)配置gitblit
      • (三)将gitblit注冊為計算機的服務項自啟動
    • 三、在麒麟linux系統安裝git
    • 四、在Qt使用git
      • (一)使用ssh的配置
      • (二)建立版本庫
        • 1、gitblit建立版本庫
        • 2、在本地建立倉庫
    • 五、結語及下載下傳連結
    gitblit及git的方法)

一、簡單介紹gitblit和git的關系

(一)為什麼要軟體版本控制

什麼是代碼托管?或者說為什麼要代碼托管,可以假設幾個場景。

  1. 程式的代碼始終處于一個更新疊代的過程中,但是這個更新疊代不一定是完美的,是以有時候需要将代碼傳回到曾經的一個版本,即復原。
  2. 同一段初始的代碼,可能由此衍生出衆多的衍生版本,版本衆多,需要梳理清楚。
  3. 同一個軟體,可能需要群策群力,大家共同來完善他,每個人都可以在這段軟體中貢獻自己的智慧。

    在以上場景中,都需要用到一個代碼版本控制軟體。

(二)怎麼實作軟體版本控制

軟體版本控制,需要有一個遠端代碼倉庫,即伺服器端,以及本地代碼倉庫,用戶端。

在網際網路上的遠端代碼倉庫,最知名的,當然是github,除此之外,在國内常用的,還有碼雲等等,在這些平台上,能實作代碼托管。

而最有名的本地代碼版本控制系統,當然是git。

還是情景假設,如下步驟

  1. 當你寫完一段代碼,你首先要将這段代碼,儲存到本地倉庫,這個過程就是commit。
  2. 儲存到本地倉庫後,你覺得這段代碼值得與大家分享了,或者放在本地不踏實,怕丢,就需要上傳到遠端倉庫,上傳的過程,就是push。
  3. 過了很久,你想看看遠端倉庫,這個代碼的最新狀态,是否有别人送出了新的修改了,你首先需要做的,就是把遠端最新的版本下載下傳到本地,就是fetch。
  4. 你看了看最新的代碼,感覺好像頗有參考價值,決定将其和自己本地的代碼融合到一塊,就是merge。
  5. 有時候你對别人的代碼比較自信,覺得沒必要分兩步走,也耐不住這個性子,想要下載下傳了代碼之後,直接合并,一步到位,這個過程就是pull。
  6. 過了一陣子,你發覺這個版本不想要了,想回退到某個版本,于是,你首先得檢視,你送出了哪些版本,即git log。找到了你想要的那個版本,于是git reset,回退。

    了解了這個過程,就能大概知道了版本控制的作用了。

二、在32位windows7部署gitblit

(一)部署java環境

gitblit的運作依賴于java環境,是以首先需要部署java環境。

我用來假設版本控制伺服器的作業系統是32位的windows7,于是我使用的也是相應的jdk版本。

我使用的是免安裝版本的,需要自行将java寫入作業系統的環境變量中。

  1. “計算機” -> “屬性” -> “進階系統設定” -> “環境變量” 中的“系統變量”。
  2. 添加JAVA_HOME,指向你的java檔案夾的目錄。比如

    C:\Program Files\Java\jdk1.8.0

  3. 添加CLASSPATH,這麼寫

    .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

  4. 在原來的一項,path中,添加

    ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

    添加完成後,測試一下,打開電腦的cmd指令行,輸入

    java -version

    ,如果顯示了你的java版本号,則說明環境變量添加成功了。

(二)配置gitblit

gitblit的部署,同樣是免安裝版的,将其放在某個你覺得穩妥的位置。

  1. 找一個你覺得穩妥的位置,建立一個檔案夾,命名成你喜歡的名字,如“gitblitRep”,後面作為軟體倉庫使用。
  2. 打開檔案夾下的“data”檔案夾,找到“defaults.properties”,修改其中内容。
  3. 修改“git.repositoriesFolder = F:\gitblitRep”後面那是路徑,是你自己建立的檔案夾,即軟體倉庫。
  4. 修改一個綁定的ip,你在區域網路中搭建伺服器,當然不是為了自己本地使用,是以你需要修改“server.httpBindInterface = 127.0.0.1”為“server.httpBindInterface = XX.XX.XX.XX”,你的某個網卡的IP,多網卡的話,更需要指定那塊網卡的IP。
  5. 你當然還可以修改更多東西,比如“server.httpPort”或者“server.httpsPort”,這是别人網頁通路gitblit時輸入的位址後面帶的端口号。都有預設值,可以不修改。http的預設值為8442。

到此,配置修改完畢,運作就可以使用了。輕按兩下檔案根目錄下的“gitblit.cmd”,出現一個指令框,别關,指令框關了就停止運作了。在浏覽器中輸入“XX.XX.XX.XX:8442”,就能通路版本控制網頁了。

(三)将gitblit注冊為計算機的服務項自啟動

在檔案夾的根目錄下,有一個“installService.cmd”,右鍵“編輯”,需要根據你的系統的具體情況修改一些參數。

@REM arch = x86, amd64, or ia32
SET ARCH=x86                 #如果是32位作業系統,則填寫x86,如果是64位作業系統,則填寫amd64
SET CD=F:\gitblit-1.9.1      #根據你的gitblit的實際位置填寫
           

**注意!**運作這個cmd檔案,不能直接輕按兩下運作,而是要在管理者模式下啟動cmd,然後切換到這個檔案目錄下,運作該cmd檔案。比如在cmd指令行中,依次輸入,

f:
cd gitblit-1.9.1
start installService.cmd
           

或許你可以直接輕按兩下運作“installService.cmd”,可以先試試,看看計算機的“服務”中,有沒有新增一條“gitbilit”,如果有,則達到目的了。

至此,開機就能自啟動gitblit了。

另外,gitblit預設的使用者名是admin,密碼為admin。

三、在麒麟linux系統安裝git

這個其實操作沒什麼難點,繁瑣的是如果你像我這樣離線安裝,就需要自行解決一些依賴問題,這就有些棘手了。

git依賴于perl和git-man,是以,需要先安裝這兩個庫,才能正常安裝git。

另外,麒麟linux使用的是deb安裝包,與ubuntu的deb貌似通用,我安裝的幾個deb包,都是通過ubuntu下載下傳,然後安裝的。按照如下順序安裝deb包吧(筆者已經下載下傳整理好了,文末将提供下載下傳連結)

sudo dpkg -i liberror-perl_0.17-1.2_all.deb
sudo dpkg -i git-man_2.7.4-0ubuntu1.10_all.deb
sudo dpkg -i git_2.7.4-0ubuntu1.10_arm64.deb
           

如此安裝的git的預設目錄為

/usr/bin/git

。記下這個目錄,如果你的電腦不是這個目錄,可以用這條linux指令找一下他在哪

sudo find / -name git
           

一般就是包含usr和bin的一條路徑。

四、在Qt使用git

為了友善在Qt使用git,可以直接在Qt進行送出,需要将git使用ssh的傳輸方式,ssh是加密傳輸的方式,需要在本機電腦生成公鑰。在linux終端中,依次輸入以下指令,注意看我添加的注釋。

(一)使用ssh的配置

#随便取一個你喜歡的使用者名,比如superman
git config --global user.name "username"       

#随便取一個你喜歡的郵箱,不需要真實存在,比如[email protected],記錄下來
git config --global user.email "useremail"  

#使用剛剛你輸入的郵箱名,回車後,一路回車,不用輸入任何東西。
ssh-keygen -t rsa -C "useremail"

           

到此,就生成你的公鑰了,需要将你的公鑰填寫到gitblit網站中。首先找到你的公鑰在哪。

#預設的目錄
cd ~/.ssh

#你可以看到有三個檔案
ls

#打開其中的id_rsa.pub,将其中的内容複制出來(可以直接用滑鼠選中,右鍵複制)
vim id_rsa.pub
           

下面将公鑰寫入gitblit

  1. 打開浏覽器,輸入通路位址"XX.XX.XX.XX:8442"。
  2. 輸入使用者名admin,密碼admin。
  3. 在右上角頭像位置,點選,出現下拉框,選中“使用者中心”。
  4. 頁面中點選“SSH Keys”,出現一個添加ssh公鑰的輸入框,粘貼進去,然後添加即可。

(二)建立版本庫

1、gitblit建立版本庫

  1. 打開浏覽器,輸入通路位址"XX.XX.XX.XX:8442"。
  2. 輸入使用者名admin,密碼admin。
  3. 在右上角頭像位置,點選,出現下拉框,選中“建立版本庫”。
  4. 在出現的頁面中,輸入一個版本庫的名字,名字自取,點選“建立”
  5. 在“概況”中,看到“版本庫位址”,複制其中的ssh開頭的位址。記下這個位址,是後面在本地送出軟體代碼時,輸入的遠端倉庫的位址。

2、在本地建立倉庫

我是在現有的代碼中,建立一個代碼倉庫的,并且想要實作在Qt中直接送出代碼的功能。

  1. 打開Qt,打開想要版本控制的軟體代碼。
  2. 在Qt的上邊沿菜單欄中,選擇“工具” -> “選項” -> “版本控制” -> “Git”,其中有一欄“附加在系統PATH之前”,在後輸入git的目錄,比如

    /usr/bin/git

    。然後“OK”,“APPLY”。
  3. 還是Qt的菜單欄中,“工具” -> “Git” -> “建立倉庫”,選中你的代碼所在的檔案夾,确定,這時候,回在這個檔案夾下,生成一個“.git”的檔案夾,應該是隐藏的。
  4. 在linux的終端打開到這個檔案夾所在的目錄,然後輸入如下指令

    git init

    ,初始化項目。
  5. git remote add origin "剛剛複制的ssh的位址"

  6. git add .

    ,将代碼送出到緩存區。
  7. git commit -m '随便寫點什麼,引号内就是描數内容,類似備注'

  8. git push -u origin master

    ,上傳到遠端代碼倉庫。
  9. git pull --rebase origin master

    ,從遠端倉庫,下拉至本地。
  10. git config --global push.default simple

至此,第一次送出和下拉,就完成了,後續就可以再Qt中,直接使用commit,pull和push等功能了。

另外,再Qt中使用這些功能時,還會提示一些資訊,這隻是提示資訊,根據資訊,做好選擇,然後在終端輸入相應的指令即可。

五、結語及下載下傳連結

至此,整個過程就介紹完了,至于git的具體使用方法,日後再行介紹。

最後是傳送門,git和gitblit及他們的依賴庫的下載下傳連結。

git2.7.4及相關依賴庫(麒麟linux可用)

gitblit-1.9.1及32位jdk