Git的大名現在大約已經算是無人不知無人不曉啦,這篇文章會把整個管理流程的使用邏輯簡述一下,作為筆記參考之用,而關於Git的指令操作應該隨便找都有,大概會在下一篇稍微簡介一下常用的幾種。
Issue Tracking System
是低,基於現在正是本人如火如茶的迷上Rails之際,理所當然會採用Git + Redmine來產生加乘效果,但本篇只專注紀錄Git部份。
請看以下這張經典之作
圖片來源 - ihower |
這張圖中有時間軸,還有五條支線,直接看圖乾那會有點亂無章法的,
讓我們繼續看下去(盛竹如語氣)
主線為 master,以此作為主幹 branch,還可以開啟不同情況下的各種分支:
主要分支
- master 主程式(除非重大 bug,則會分出 hotfix 分支)
- develop 開發分支(用來在另外分支出 Release, feature)
次要分支
- Hotfixes(由 master 直接分支,馬上修正 bug)
- Feature(由 develop 直接分支,開發新功能)
- Release(由 develop 直接分支,開發下一版 Release)
其實使用Git的最大魅力就是無限開branch,上面所有的branch都有其工作意義,
詳述如下──
MASTER
一直存在的分支
紀錄每個上線的版本
只有在推出新版的時候才會有變動
所謂的穩定版(stable version)
DEVELOP
一直存在的分支
必須總是 build 得過
New feature 和 enhancement 都在這裡
所謂的測試版
FEATURE
從 develop 分支出來
要 merge 回 develop
新增或修改功能的時候才會出現
功能完成就砍掉
RELEASE
從 develop 分支出來
要 merge 回 master,並且上 tag
要 merge 回 develop
管理者決定要 release 新版的時候才會出現
release 之後就砍掉
修改版本號,release note, ReadMe
最後測試並發現 bug
HOTFIX
從 master 分支出來
要 merge 回 master,並且上 tag
要 merge 回 develop 或 release
緊急修正問題專用
修正問題後砍掉
修改版本號, release note, ReadMe
簡單的說心法就是 ──
- 不同 branch 有不同用途,不得混用
- 任何更動都要開 branch(反正開 branch 不用錢)
- 除了 master 和 develop,其他 branch 完成其任務就砍掉
branch講完了,那commit咧?
簡單的說,就像是打電動的時陣,打到好寶會想要紀錄,要打魔王之前會想要紀錄,你可以把commit想像成無敵的無限紀錄欄位,重要時候就給他commit一下,等到發現打不過魔王的時候還可以隨時回頭重練...XD
看起來都是好處,Git好優秀
是的,他真的很猛,唯一的壞處就是,
要學會善用之前要一些努力...
下篇待續─Git本機端簡易工作流程
May 15th, 2012
shesee@Taipei
沒有留言:
張貼留言