GitFlow工作流常用操作流程
阿新 • • 發佈:2018-03-05
localhost devel 例如 diff 行合並 hot per 進行 ash
1. 主要分支介紹
1.1 master分支
主分支,產品的功能全部實現後,最終在master分支對外發布。
1.2 develop分支
開發分支,基於master分支克隆,產品的編碼工作在此分支進行。
1.3 release分支
測試分支,基於delevop分支克隆,產品編碼工作完成後,發布到本分支測試,測試過程中發現的小bug直接在本分支進行修復,修復完成後合並到develop分支。本分支屬於臨時分支,目的實現後可刪除分支。
1.4 bugfix分支
Bug修復分支,基於master分支或發布的裏程碑Tag克隆,主要用於修復對外發布的分支,收到客戶的Bug反饋後,在此分支進行修復,修復完畢後分別合並到develop分支和master分支。本分支屬於臨時分支,目的實現後可刪除分支。
1.5 feature分支
功能特征分支,基於develop分支克隆,主要用於多人協助開發場景或探索性功能驗證場景,功能開發完畢後合並到develop分支。feature分支可創建多個,屬於臨時分支,目的實現後可刪除分支。
2. 新功能開發工作流
2.1 切換到本地倉庫工作區
cd /home/timerhunter/workspace
2.2 從遠程倉庫克隆代碼到本地倉庫
git clone https://xxxx@localhost:8443/r/valve/V5-Lora.git
2.3 基於master分支,創建develop分支
/* 切換到master分支 */
git checkout master
/* 基於master分支克隆develop分支,並在克隆完畢後直接跳轉到develop分支 */
git checkout -b develop
/* 推送develop分支到遠程倉庫 */
git push origin develop
註:編碼工作主要在develop分支,master分支主要用來發布穩定版本
2.4 在本地倉庫的開發流程
完成一個功能點或者一天的工作結束時,將代碼提交到本地倉庫
/* 提交修改到緩沖區 */
git add .
/* 提交修改到本地倉庫 */
/* 如果是修復的BUG,應該在修改說明的最開始添加Bug#ID,多個Bug用逗號分隔,例如Bug#002,003 */
/* 如果是完成了一個指派的任務,應該在修改說明的最開始添加Task#TaskID,例如Task#165 */
git commit -m "Bug#123 修改說明"
/* 每完成一個功能點可以對代碼進行打包 */
git tag -m "簡要說明增加/修復/刪除了什麽功能" v0.0.0.170718
註:不是每一個Tag都需要提交到遠程倉庫,比如可以在完成一個功能點的編碼工作後未編譯就打一個包,僅存儲於本地倉庫,在編譯成功&測試通過後,再打一個新的Tag包(裏程碑Tag包),僅將裏程碑Tag包推送到遠程倉庫
2.5 推送代碼到遠程倉庫
當完成一個功能點或階段工作時,將代碼推送到遠程倉庫develop分支
/* 執行代碼拉取操作,防止代碼沖突 */
git pull
/* 解決代碼沖突後,推送代碼到遠程倉庫*/
git push origin develop
註:禁止將未編譯或編譯不通過的代碼提交到遠程倉庫,如果編碼工作進行未完成可以提交到本地倉庫中,等待該功能點全部實現後再將代碼推送到遠程倉庫中。
2.6 將代碼發布到測試分支
階段性的開發工作已完成,啟動小批量測試工作,將代碼發布到測試分支release
git checkout develop
git checkout -b release
git push origin release
2.7 測試工程師提交Bug後修復
- 修復流程同#2.4,#2.5;
- 註意在git commit時的修復說明中添加Bug#BugID關鍵字
- 完成一個Bug修復或完成階段性工作後,將代碼推送到遠程分支
2.8 測試工作完成後,合並代碼到develop分支
/* 切換到develop分支 */
git checkout develop
/* 執行合並操作,將release分支代碼合並到develop分支 */
git merge release
/* 如果合並報錯,則解決沖突,沖突解決後繼續再次執行合並 */
2.9 開發工作和測試工作都完畢後,將develop分支合並到主線
git checkout master
git merge develop
2.10 階段開發完畢,打一個裏程碑Tag包
/* 創建裏程碑Tag */
git tag -m "Task#003 v1.0.0 首版發布" v1.0.0.170718
/* 推送裏程碑Tag到遠程倉庫 */
git push origin v1.0.0.170718
3. 發布後的產品Bug修復工作流
3.1 獲取Bug產品的軟件發布版本號
3.2 查找裏程碑Tag
/* 查詢裏程碑及其提交說明 */
git tag -n1 -l v*
3.3 基於裏程碑Tag創建分支
/* git checkout -b [創建的分支名稱] [裏程碑Tag名稱] */
git checkout -b bugfix-v1.0.0.170718 v1.0.0.170718
3.4 修復代碼後可以查詢修改過的地方
git diff
3.5 修復完畢後分別合並到develop分支和master分支
/* 合並到develop */
git checkout develop
git merge hotfix-v1.0.0.170718
/* 提交到遠程倉庫develop分支 */
git push origin develop
/* 合並到master */
git checkout master
git merge hotfix-v1.0.0.170718
/* 提交到遠程倉庫master分支 */
git push origin master
3.6 創建新的裏程碑Tag
git tag -m "Bug#002 修復某某Bug" v1.0.1.170719
/* 推送到遠程倉庫 */
git push origin v1.0.1.170719
3.7 刪除bugfix分支
/* 刪除本地分支-git branch -d [本地分支名]*/
git branch -d bugfix-v1.0.0.170718
/* 刪除遠程分支-git push origin :[遠程分支名]*/
git push origin :bugfix-v1.0.0.170718
目前僅用到這些流程,新學有不足的地方請指出交流。
GitFlow工作流常用操作流程