Git 協作流程 git-flow

版本命名

語義化版本(Semantic Versioning):
主版本號.次版本號.修訂號(MAJOR.MINOR.PATCH)

*   開發版 develop 主版本號.次版本號.修訂號-dev 例如:1.2.2-dev

*   預發布版 release 主版本號.次版本號.修訂號-beta 例如:1.2.2-beta

*   發布版 master 主版本號.次版本號.修訂號 例如:v1.2.2

分支命名策略

長期分支有兩個 master 和 develop

主分支 master:

負責記錄上線版本的迭代,該分支代碼與線上代碼是完全一致的。不允許隨意的往該分支合并代碼。

開發分支 develop:

該分支記錄相對穩定的版本,所有的feature分支都從該分支創建。

其它分支為短期分支,其完成功能開發之后需要刪除

特性(功能)分支 feature/*:

開發新的功能、完善已有功能、bug修復等日常開發任務使用特性分支,不同的功能創建不同的功能分支,功能分支開發完成并自測通過之后,需要合并到 develop 分支,之后刪除該分支。

預發布分支 release/*:

用于代碼上線準備,該分支從develop分支創建,創建之后由測試同學發布到測試環境進行測試,測試過程中發現bug需要開發人員在該release分支上進行bug修復,所有bug修復完后,在上線之前,需要合并該release分支到master分支和develop分支。

熱修復分支 hotfix/*:

緊急bug修復分支,該分支只有在緊急情況下使用,從master分支創建,用于緊急修復線上bug,修復完成后,需要合并該分支到master分支以便上線,同時需要再合并到develop分支。

工作流程

第一步

在github中創建一個新的倉庫,這時候項目是空的,而且只有一個master分支

第二步

第一個開發人員進來了,他在本地創建一個develop分支,并且提交到遠程

git branch  develop
git push -u origin develop

現在線上就有兩個分支master 和 develop 現在這兩個分支里面都是空的

第三步

一、二步完成后,任何一個參與該項目的開發人員首先要做的就是從develop分支上切一個新分支進行功能開發

git checkout -b <本地分支名 feature/***> <origin/develop>
或者
git fetch origin 遠程分支名:本地分支名
git branch --set-upstream-to=origin/遠程分支名    本地分支名
然后進行開發,開發差不多,想提交一下

git status
git add
git commit

第四步

經過第三步,提交了幾次后,感覺差不多了,就可以合并到develop分支

git pull origin develop //先拉取develop中的代碼,因為有可能別人已經往上提交過代碼了
git checkout  develop//切到develop分支
git merge <feature/**>//合并feature/**中的代碼到develop中
git push //提交到develop遠程分支上
git branch -d feature/** //刪除本地的分支

第五步

某一個開發人員想發布,但是其他人員還在進行開發,先不管別人,他先建立一個新的分支release-1.1.2-beta做發布準備,測試組介入測試,測試中發現問題,開發組在該分支進行修復,功能完善后將該分支合并到master和develop分支,刪除該分支

git checkout -b <本地分支名realse-0.1> <遠程分支名develop>
//注意這個realse-tagNo分支的功能是對發布的代碼進行改善的地方
創建這個分支相當于測試環境修改,改好后就需要更新master和develop,然后刪除分支

git checkout  master//切到master分支
git merge release-0.1//將release分支合到master上
git push//將合完的代碼提交到遠程master
git checkout develop//切到develop分支
git merge release-01//將release分支上的代碼合到develop分支上
git push//合完的代碼推送到遠程的develop分支
git branch -d release-01//刪除本地release分支

第六步

線上環境發現bug了,從master分支檢出一個新分支hotfix/xxx,修改完成后測試組介入測試,如果測試發現bug,開發組在該分支修改,功能完善后合并代碼到master和develop分支,然后刪除該分支。

git checkout -b hotfix/xxx master//從master分支上新建分支
然后開始改bug,改完后

git checkout master//切回master分支
git merge hotfix/xxx//將改完bug后的代碼合并到master
git push
改完bug的代碼還要合到develop中

git checkout develop
git merge hotfic/xxx
git push
git branch -d hotfix/xxx
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Git分支管理 master:主分支,當前分支上的代碼隨時可以直接發布,并且只能通過Pull Request從其他...
    UEUEO閱讀 9,735評論 5 33
  • 引言 編寫的目的 -通過規范化的流程,使得產品、開發與測試等各個部門更高效的協同工作。-通過規范化的流程使得產品高...
    j春雨閱讀 448評論 0 1
  • 引言 編寫的目的 -通過規范化的流程,使得產品、開發與測試等各個部門更高效的協同工作。-通過規范化的流程使得產品高...
    一憶閱讀 34,972評論 12 87
  • 什么是GitFlow? Git Flow定義了一個項目發布的分支模型,為管理具有預定發布周期的大型項目提供了一個健...
    一天大佬閱讀 12,909評論 0 5
  • 我很少寫煽情的文字,一個東北糙老爺們兒——吃飯像和食物有仇似的風卷殘云,喝酒從來都是灌的,走路好似被鬼追。哪里有優...
    云淡風輕之藍閱讀 1,698評論 38 46