軟體開發工作流-GitFlow
阿新 • • 發佈:2020-10-09
搞開發的相信大部分人git天天都在用,那麼一般我們在實際工程當中,遵循一個合理、清晰的Git使用流程,是非常重要的。否則,每個人都提交一堆雜亂無章的commit,專案很快就會變得難以協調和維護。那麼是如何來規範整個流程的呢 ;
標準其實很多,這裡我們介紹下Gitflow;
什麼是Gitflow
Gitflow是基於Git的強大分支能力所構建的一套軟體開發工作流,最早由Vincent Driessen在2010年提出。最有名的大概是下面這張圖。
那麼針對這個規範我們來看下如何在實際使用中來應用整個流程 1、分支說明 主要分兩種 主分支 和 支援性分支 ● 主分支 : 分支目錄為單層,分支永久保留 ○ develop : 當 feature branches 開發完成後,提供測試時,請合併到此,此分支不做任何的程式修改和變更集,只接受 master 和 feature branches 的合併 ○ master : 永遠處在 production-ready 狀態 ● 支援性分支 : 分支層級為雙層,合併後且沒使用可刪除 ○ feature branches : 新功能開發,分支的建立都以 master 為來源 ○ hotfix branches : 臨時需修改的 bug ,分支的建立都以 master 為來源 ○ release branches: 提供 Marketing 測試,預計要上線的版本,分支的建立都以 master 為來源,且在合併要測試的 feature branches,合併完成後請設定 Tag,Tag 的內容為合併的 feature branches 2、分支的來源和合並
● 主分支 ○ develop ■ 來源 : master, feature branches ■ 合併 : 無 ○ master ■ 來源 : 無 ■ 合併 : release branches, develop ● 支援性分支 : 分支層級為雙層 ○ feature branches ■ 來源 : master ■ 合併 : release branches, develop ○ hotfix branches ■ 來源 : master ■ 合併 : release branches, develop, master ○ release branches ■ 來源 : master, feature branches ■ 合併 : master3、支援性分支命名 ● feature branches : 依功能命名 ○ ex: 開發的新功能為 FeedbackDashboard,請命名為 feature/FeedbackDashboard ● hotfix branches : 依修改的 bug 命名 ○ ex: 修改 Invoice 的顯示錯誤,請命名為 hotfix/Invoice ● release branches : 因為合併多個 feature branch,需依日期命名 ○ ex: release/20171013 4、分支對應環境 ● 主分支 ○ develop : 開發環境 ○ master : 生產環境 ● 支援性分支 ○ feature branches : 無 ○ hotfix branches : 無 ○ release branches : 沙箱環境 5、Git 常用指令 請安裝 Git Windows : https://git-scm.com/download/win ● 分支合併 ○ git merge feature/xxx --no-ff ○ :ws! ● 同步遠端分支 ○ git remote update ○ git remote update origin --prune ● 加入 dll 到 Git ○ git add xxx.dll -f ● 還原本機所有變更集 ○ git reset --hard HEAD~ ● 建立 Tag ○ git tag -a tagName ● 同步 Tag 到遠端 ○ git push origin tagName ● 查詢 Tag 的內容 ○ git show tagName ● 刪除 Tag ○ git push -d origin tagname ○ git -d tagname