基于 Git 這一版本控制系統(tǒng),通過定義不同的分支,探索合適的工作流程來完成開發(fā)、測試、修改等方面的需求。
例如:在開發(fā)階段,創(chuàng)建 feature 分支,完成需求后,將此分支合并到 develop 分支上;在發(fā)布階段,創(chuàng)建 release 分支,完成階段開發(fā)任務(wù)后,將分支合并到 develop 和 master 分支上;在修改 bug 過程中,創(chuàng)建 Hotfix 分支,基于此分支完成 bug 修復(fù),并合并到 develop 和 master 分支。其中,master分?和develop分?貫穿項?;其他分支均為承擔特定指責的臨時分?。
分支名及作用
分?名稱 | 作用 | ?命周期 | 提交or合并 | 起?點 |
---|---|---|---|---|
feature分? | 開發(fā)某個功能 | 臨時分?、開發(fā) 階段 | 可提交代碼 | 由develop分支產(chǎn)?, 最終合并到develop分? |
develop分? | 記錄歷史、開發(fā)功能 | 貫穿整個 項? | 不能提交,由Feature分 ?、Release 分?、Hotfix分?合并代碼 | 整個項目 |
release分? | 用于本次Release 如文檔、測試、 bug修復(fù) | 臨時分支、發(fā)版 階段 | 可提交代碼 | 由develop分支產(chǎn)?, 最終合并到develop 分?和master分支 |
hotfix分? | ?于解決線上bug | 臨時分 ?、緊急 修復(fù)階段 | 可提交代碼 | 由master分?產(chǎn)?, 最終合并到develop 分?和master分支 |
master分? | 記錄歷史發(fā)布版本 | 貫穿整個項目 | 不能提交,由Release、Hotfix分支合并代碼 | 整個項? |
實例
命令操作說明:
本文演示的命令是使用 win10 環(huán)境下的 WSL2.0(特殊情況會注明);
$
符號所在行是演示命令,$
符號所在行的下面為輸出內(nèi)容。
初始化項目
創(chuàng)建一個名為 git-demo-workflow-project
的 Git 項目,在該項目內(nèi)創(chuàng)建一個文件并提交。
$ pwd
$ mkdir git-demo-workflow-project
$ cd git-demo-workflow-project/
$ touch readme.md
$ git init
$ git add .
$ git commit -m "init"
創(chuàng)建 develop 分支
$ git switch -c develop
開發(fā)階段
創(chuàng)建 feature 分支來實現(xiàn)特定功能(實例中用文件 LoginUser.html
代替),完成功能后合并到develop分?,并刪除 feature分?。
$ git switch -c feature-login
$ echo "hi, this is user html" > LoginUser.html
$ cat LoginUser.html
$ git add .
$ git commit -m "feat: add LoginUser.html"
$ git status
$ git switch develop
$ git merge --no-ff -m "merge feature-login to develop" feature-login
$ git branch -d feature-login
發(fā)布階段
創(chuàng)建 release 分?,修改提交后,合并到 master、develop分支
$(develop) git switch -c release-v0.1
$(release-v0.1) echo "bugifx LoginUser.html" >> LoginUser.html
$ git add .
$ git commit -m "fix: bugfix for LoginUser.html"
$ git checkout master
$ git merge --no-ff -m "branch 'master' merge branch 'release-v0.1'" release-v0.1
$ git switch develop
$ git merge --no-ff -m "branch 'develop' merge branch 'release-v0.1'" release-v0.1
$ git branch -d release-v0.1
bug 修復(fù)階段
$ git switch -c hotfix-v0.1.1
$ git status
$ echo "hotfix for LoginUser.html" >> LoginUser.html
$ cat LoginUser.html
$ git add .
$ git commit -m "hotfix: do something for LoginUser.html"
$ git switch master
$ git merge --no-ff -m "branch 'master' merge branch 'release-v0.1'" hotfix-v0.1.1
$ git tag v0.1.1
$ git switch develop
$ git merge --no-ff -m "branch 'master' merge branch 'release-v0.1'" hotfix-v0.1.1
$ git branch -d hotfix-v0.1.1
文章來源:http://www.zghlxwxcb.cn/news/detail-834746.html
參考:faster-git datawhale文章來源地址http://www.zghlxwxcb.cn/news/detail-834746.html
到了這里,關(guān)于GitFlow工作流的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!