【Git】使用SourceTree與GitLab遠端倉庫進行交互

在上一篇博客Git】使用SourceTree克隆GitLab代碼倉庫中已經克隆了遠程倉庫,下面學習一下如果在本地進行修改並提交到遠程倉庫。

一、Git工作流初始化倉庫

點擊Git工作流。

這裏有幾個分支:

應該長期存在的兩個核心分支:

  • master,該分支存放對外發布的版本,任何時候該分支都是穩定的發佈版。不可以直接在該分支push 代碼。
  • develop,該分支的代碼存放的是達到穩定並且準備發佈時的,新功能開發都是基於此分支

此外還有三種短期分支:

  • feature,功能分支,進行新功能的開發將在此分支上進行。該分支的代碼基於develop 並且最終會合並回develop 分支。
  • hotfix,補丁分支,進行線上問題修復將在此分支進行,該代碼分支基於master 並且最終將合併會develop、master 分支。
  • release,release預發佈分支。

幾個分支具體的工作流程是:

  1. 當進行新功能開發時,需要基於develop分支拉取feature分支進行開發,如增加了一個功能,應該基於develop分支創建 feature/news 分支。
  2. 當功能開發完畢時,將提交merge request,將該功能合併到develop 分支。
  3. 當所有feature 功能開發完畢,且都已合併回develop,開發自己測試完畢後。準備創建預發佈版本,就可以基於develop創建release分支。此時測試人員可以基於該版本release進行測試,發現了問題,則在release分支上進行問題的修復。
  4. 當具備上線條件時,需要將release分支合併到master和develop分支,同時需要打tag,然後進行上線操作,線上發佈的爲master分支。
  5. 當需要修復線上bug時,需要基於master創建hotfix分支,當修復且驗證完畢後,將hotfix分支合併回master分支,同時爲了保證該hotfix包含在下一個發行版中,同時需要合併回develop分支,同時需要打tag。最後刪除hotfix分支。

點擊確定。

完成之後左側就多了一個develop分支。

二、建立新分支

再次點擊Git工作流,會彈出對話框選擇下一個流動作。

這裏選擇建立新的功能。

填入功能名稱,最好是可以反映這是一個什麼功能,這裏僅做測試用。默認的就是基於develop分支,點擊確定。

完成之後,左側出現了feature/test分支。

三、開發新功能

現在我工作在feature/test分支,它是基於develop分支的。

新建了一個featuretest.txt文件。

在sourcetree的WORKSPACE點擊文件狀態。

這時在未暫存文件裏面出現了我新增的這一個文件。

點擊“+”暫存這一個文件。

就將文件暫存了。

在最下方的對話框中填寫本次修改的描述,然後點擊提交。

這是將修改提交到本地倉庫。

這時再次點擊Git工作流。

選擇下一個流動作爲完成功能。

表明要將feature/test分支合併到develop分支。

完成之後,本地的feature/test分支已經被刪除。

四、提交到服務器

由於現在develop分支還只存在於本地,遠程倉庫並沒有。這裏先在develop分支上選擇拉取

將遠端master分支上的代碼拉取到本地develop分支。

完成之後點擊推送,選擇將本地develop分支推送到遠程develop分支,遠程分支若不存在,則會自動新建。

完成之後,在gitlab上查看已經多了一個develop分支

develop分支上有新增的featuretest.txt文件。

現在如果代碼管理者接受了這一個提交併且認爲可以合併到master分支,那麼合併之後,開發人員在本地切換到master分支,拉取最新的代碼。

master分支已經合併了上次develop分支的修改。

總結一下,開發流程是:

  1. 每次開發新功能前都先從服務器上拉取最新的代碼。
  2. 開發人員基於develop分支在本地新建具體的開發分支,進行開發,提交到本地。
  3. 開發完成將本地的開發分支合併到本地的develop分支。
  4. 推送到服務器之前再次拉取最新的代碼,解決衝突,再次提交。
  5. 將本地develop分支的修改推送到遠端develop分支。
  6. 等待代碼管理人員將穩定的遠程develop分支合併到master分支。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章