Gitflow

參考:

一.分支簡述

  • 藍圓--主線(master)
  • 紫圓--主分支(dev)(生產主線)
  • 橙圓--新功能開發主線(feature)
  • 綠圓--新版本發佈線(release)
  • 紅圓--發佈版本bug修復線(hotfix)

二.工做流程

工做流基礎

項目負責人建立dev分支供團隊開發人員圍繞它進行相關操做git

git branch dev
git push -u origin dev

複製代碼

其餘人clone,建立一個dev的軌跡版本github

git clone git@github.orgXXXXXXXX
git checkout -b dev origin/dev

複製代碼

dev這個分支將包含項目的完整歷史記錄,而master僅包含縮略版本。web

新功能開發流程

1.新建feature分支bash

在dev基礎上建立新分支:測試

git checkout -b feature/demo dev

複製代碼

推到遠程,(而後這部分新功能代碼就提交到這個上)ui

git push

複製代碼

全部開發此新功能的人員,都在這個分支上開發提交代碼spa

git status
git add
git commit -m "Add some-file."

複製代碼

2.完成新功能開發(合併feature分支到dev上去)3d

git pull origin dev
git checkout dev
git merge feature/demo
git push
git branch -d feature/demo

複製代碼

注意code

  • 新功能分支,永遠不要直接在master上合併,要在dev上進行操做
  • 合併時作好衝突合併(webstrom可實現自動合併)

3.測試環境發佈dev分支代碼(提交測試)cdn

線上版本發佈流程

(1)從dev中建立發佈的release分支

當主測試流程完成,源碼已經趨於穩定,準備一個發佈版本(確立版本號),並推到遠程

git checkout -b release-1.0 dev
git push

複製代碼

這個分支是清理準備發佈、 總體迴歸測試、 更新文檔,和作其餘任何系統即將發佈的事情。

(2)開發交代碼改bug

(3)release分支合併到master和dev

一旦已經知足發佈條件(或已經到了預約發佈日期),應該把release分支合併到master分支和dev分支中,而後,使用master發佈新版本。合併release分支到dev分支是很重要的,要讓release上修改的東西能在後續的開發分支中生效。

master

git checkout master
git merge release-1.0
git push

複製代碼

dev

git checkout develop
git merge release-1.0
git push
git branch -d release-1.0

複製代碼

(4)打標籤

Release分支在功能開發分支(dev)和公共發佈版(master)中,充當一個緩衝的做用。每當有源碼合併到master中的時候,應該在master上打一個標籤,以便後續跟蹤查閱。

git tag -a 1.0.RELEASE -m "Initial public release" master
git push --tags

複製代碼
線上bug修復過程

當用戶反饋系統有bug,需從master基礎上建立並維護hotfix新分支,解決完在合併回master

(1)建立hotfix

git checkout -b issue-#001 master

複製代碼

(2)修復

(3)完成後合併到master發佈

git checkout master
git merge issue-#001
git push

複製代碼

(4)打標籤

(5)合併到dev

git checkout develop
git merge issue-#001
git push


複製代碼

三.小結

  • master僅包含縮略版本,dev包含項目完整歷史記錄
  • 添加新功能都在dev上新生成分支feature進行操做,而後在合併回dev上
  • 版本:在dev上測試流程完成,源碼趨於穩定時,在dev上建立一個release做爲發佈版本號(其實就是master和dev之間的一個緩衝)
  • 線上修bug:反饋出bug以後,在master基礎上新建一個分支hotfix,在該hotfix上修好了在合併回master,並同步到dev
相關文章
相關標籤/搜索