SourceTree

轉載:http://www.cnblogs.com/tian-xie/

1. SourceTree是什麼

  • 擁有可視化界面的項目版本控制軟件,適用於git項目管理
  • window、mac可用

2. 獲取項目代碼

1. 點擊克隆/新建git

 

2. 在彈出框中輸入項目地址,http或者ssh地址均可以github

 

  若是箭頭指向的倉庫類型代表「這不是一個標準的Git倉庫」,多是有如下緣由算法

    1) 項目地址獲取錯誤安全

    2) 沒有項目訪問權限網絡

3. 點擊「克隆」,等待項目克隆完成,完成後,左側只有一個分支masterssh

  克隆完成後,獲得的是發佈後的master源碼,若是想要獲取最新的正在開發中的源碼,須要對項目流進行初始化,點擊「Git工做流」工具

  直接點「肯定」,獲取develop分支源碼gitlab

  開發任務都是在develop分支上完成的post

4. 分支共有5種類型測試

  1) master,最終發佈版本,整個項目中有且只有一個

  2) develop,項目的開發分支,原則上項目中有且只有一個

  3) feature,功能分支,用於開發一個新的功能

  4) release,預發佈版本,介於develop和master之間的一個版本,主要用於測試

  5) hotfix,修復補丁,用於修復master上的bug,直接做用於master

5. master和develop上文中已介紹過,當開發中須要增長一個新的功能時,可新建feature分支,用於增長新功能,而且不影響開發中的develop源碼,當新功能增長完成後,完成feature分支,將新功能合併到develop中,更新develop上的代碼

    1) 新建feature。首先當前開發分支指向develop,點擊「Git工做流」

選擇「創建新的分支」

在預覽中可看到,feature分支是從develop分出的,輸入功能名稱,點擊肯定,項目結構中增長feature分支,而且當前開發分支指向新建的feature分支

  2) 在F_add_feature分支下進行開發任務,並提交

以上操做分別增長了feature_一、feature_二、feature_3文件,共提交3次,現項目文件夾下共三個文件

當切換爲develop分支後,會發現,在develop下並無新增的三個文件,說明在feature下進行操做,並不影響develop分支源碼

  3) 完成feature開發後,將feature中的源碼合併到develop分支。將當前分支指向F_add_feature分支,點擊「Git工做流」,選擇「完成功能」

預覽中,代表feature分支將合併到develop,點擊肯定,進行提交合並,合併成功後

  4) 須要再增長新的功能時,重複以上操做便可

  5) 當多人協做開發時,可能會出現,不一樣人員對同一文件進行操做,從而引發合併衝突,對這種狀況進行模擬,在當前新建兩個feature,分別對feature_1文件進行修改,而後分別合併

feature_1在feature_1.txt下作以下操做

feature_2在feature_1.txt下作以下操做

前後合併F_feature_1和F_feature_2,會出現衝突

點擊close,查看未提交的更改,提示feature_1.txt出現衝突,

打開feature_1.txt

 

 

 出現<<<<<<< HEAD、=======、>>>>>>> feature/F_feature_2,HEAD和=號之間表示當前分支下的代碼,=號和>>>>>>> feature/F_feature_2之間表示要合併的分支下的代碼,>>>>>>> feature/F_feature_2表示了要合併的分支的分支名稱,

根據狀況區分要保留的代碼,要刪除的代碼,最後再刪除<<<<<<< HEAD、=======、和>>>>>>> feature/F_feature_2

將修改的代碼再進行一次提交

一旦出現feature合併衝突,要合併的feature分支不會被刪除,如F_feature_2,確保合併無問題後,可手動刪除F_feature_2

6. 當開發到必定階段,能夠發佈測試版本時,能夠從develop分支,創建release分支,進入預發佈測試階段。點擊「Git工做流」,選擇「創建新的發佈版本」

  

預覽中能夠看到,release是從develop分出的,輸入發佈版本名‘R_v1.0’,點擊肯定

R_v1.0爲階段性發布版本,主要用於發佈前進行測試,後續的開發工做仍舊在develop上進行,若是在測試過程當中發現問題,直接在release上進行修改,修改完成後進行提交

7. 對release分支R_v1.0進行兩次修改後,測試完成,能夠進行正式發佈,在當前分支指向R_v1.0分支下,點擊「Git工做流」,選擇「完成發佈版本」

 

在預覽中能夠看到,R_v1.0向develop和master分別合併,點擊肯定,完成正式發佈。

完成合並後,默認指向develop爲當前分支,master增長多個版本更新,將master分支推送到origin,完成線上發佈

8. 正式版本發佈後,develop可繼續進行後續開發,當正式版本出現問題時,須要進行問題的修改,能夠在master分支創建修改補丁hotfix。將當前分支切換到master,點擊「Git工做流」,選擇「創建新的修復補丁」

  

預覽中hotfix分支是從master拉去出來的,輸入修復補丁名,點肯定

在該分支下進行master的問題修改,修改完成後進行提交。當全部補丁問題修改完成後,點擊「Git工做流」,選擇「完成修復補丁」

  

預覽中,H_fix_1向master和develop分別合併,點擊肯定,完成分支合併。

合併完成後,默認當前分支爲develop,master分支有版本須要更新,當前分支切換爲master,進行推送,完成補丁修復。

9. 在完成發佈版本和完成修復補丁時,若是遇到衝突,可仿照上述5進行衝突修改,再進行後續操做

十、將gitlab代碼與sourcetree同步:

 

(1)、配置SSH Keys

 

SSH是目前較可靠,轉爲遠程登陸會話和其餘網絡服務提供安全的協議。利用SSH協議能夠有效防止遠程管理過程當中的信息泄露問題。Git就採用了SSH加密傳輸協議,加密傳輸的算法有不少,git可使用RSA,RSA的核心就是使用一對特定的數字,使用其中一個數字能夠用來加密,而另一個數字能夠用來解密。這兩個數字就是你在使用git、github和gitlab的時候所遇到的public key 也就是公鑰以及private key 私鑰。公鑰是用來加密的數字,這也就是爲何本級生成了公鑰以後,要上傳到gitlab、GitHub的緣由。從GitHub或gitlab發回來的用公鑰加密過的數據,能夠用你本地的私鑰來還原。若是key丟失,不論是公鑰仍是私鑰,丟失哪個都不能用,須要從新生成一次而後在gitlab帳戶中再設置一次就能夠了。下面就講一下如何生成SSH KEYS。

操做:打開sourcetree工具選中右上角的命令行模式,在命令行中輸入如下命令生成gitlab服務端和本地git所須要的公鑰和私鑰:
ssh-keygen -t rsa -C "你在gitlab上註冊的郵箱地址" ,接着會提示你輸入密碼(這個沒有必要輸入),而後執行到出現一個矩形框的時候就OK了。
這是你會發現C盤當前用戶目錄下多了一個.ssh文件夾,打開.ssh文件夾會發現兩個文件id_rsa和id_rsa.pub,前面的就是私鑰,後面的是公鑰,用記事本將公鑰打開,copy到gitlab->SSH Keys->Key中,copy以後Title中會顯示你的郵箱帳號(該title是能夠隨意命名的)。
完成以後點擊Add key按鈕。到這裏gitlab端的公鑰就配置好了。咱們要用到sourcetree來下載代碼到本地還要對sourcetree來進行設置。
(2)、sourcetree配置

 

打開sourcetree工具,選擇工具->選項->通常->SSH客戶端:選中OpenSSH(見下圖所示),之因此要選擇OpenSSH是由於,若是不進行選擇的話clone代碼的時候會報公鑰錯誤。
sourcetree首次拉取代碼設置

相關文章
相關標籤/搜索