1. Git是什么?
作為一名程序猿,我相信大家都或多或少接觸過git--分布式版本控制軟件。
有人說,它是目前世界上最先進的分布式版本控制系統,我想說,是否最先進不知道,但確實好用,實用。
作為一款風靡全球的軟件,不得不提提它的歷史:
--由Linus Torvalds創作,並與2005首次發布,最初僅是為更好的管理Linux核心開發而設計,不曾想太優秀,如今已被廣為使用。
2. 我們可用Git來干什么?
作為一款分布式版本控制軟件,聽上去高端大氣上檔次,但說白了,就是一款項目代碼管理工具。
3. 如何正確使用Git?
既然Git如此好用,理所當然,目前全球各大公司大多采用該軟件作為項目代碼的管理工具。
猶記得當初剛從學校進入企業,發現原來公司的代碼是這樣管理的,看上去猴塞雷的樣子。當然,伴隨着操作小心翼翼,生怕一頓操作猛如虎,犯錯回家賣紅薯。。
作為一個接觸多年的老手,則肆無忌憚,斧削刀砍,好不快活。講真,那會羡慕的不要不要~~
其實,只要懂得正確操作流程,你也可以大刀闊斧,那么下面的知識,你值得擁有!!
4. 項目管理
好了,閑話就此打住,還是得來點干貨。
我相信大家一定聽過一句話:作為一款穩定的產品,我們一定要保證項目運行的四個九。咋聽之下,一臉狐疑。其實,意為保證項目運行99.99%(至於那遁去的1,你懂的),即高可用的又一說法。
為保證項目高可用,產品上線必須嚴格遵守一定的流程。
這里提幾個概念,可能與你所在公司說法不太一樣,但我相信都是換湯不換葯,領略精髓即可,大可不必咬文嚼字。
Git 分支:
- master--該分支一般作為備份使用,通常為最穩定代碼。
- dev--該分支作為開發分支,持續開發,持續集成。
- feature--該分支作為需求開發分支,生命周期由需求創建到完成。
- release--該分支作為版本發布分支。
- hotfix--該分支作為bug修復分支,發布版本存在重要缺陷時,拉出該分支,並由該分支發布hotfix版本。
部署環境:
- DEV/Local環境--本地環境。一般而言,程序猿接到一個新的需求時,會在本地開發,完成后自己測試,這里稱為本地環境(當然財大氣粗的公司可能會專門准備一套DEV環境用於測試)。
- QA環境--與產線環境配置一致(單實例)。需求本地測試通過后,部署到QA環境中,由QA進行測試。由於QA環境部署頻繁,如果多實例部署會造成資源和時間上的浪費。
- BTS環境--與產線環境完全一致(分布式)。在版本發布前,部署到BTS環境,該環境和產線環境完全一致。一般會在版本發布前3天部署到該環境,做UAT(用戶接受測試)。
- PROD環境--分布式系統。產線環境。
4.1 新需求:
開發流程:
- 當團隊接到新的需求時,一般會安排某個或某幾個程序猿來開發該功能。在了解完需求和設計后,開發會拉出對應的feature分支,所有該需求的代碼都將在該分支上進行開發。
- 當開發完成,為驗證功能可行性,程序猿需要在本地進行對應測試,通過后將代碼合入到dev分支。
- 利用Jenkins從dev分支中進行打包,然后部署到QA環境中,由團隊中專職QA進行功能測試。測試不通過,上述步驟重復。測試通過,該需求結束。
這里,有些小伙伴則會問,為什么本地測試通過了,而在QA環境中卻不通過呢?
通常,一個團隊都會同時接多個需求,大家的代碼都會並行往dev中合入,這時就有可能影響到其他的需求,或者被其他需求影響,導致bug。
Git詳細流程:
4.2 發布新版本
開發流程:
- 當發布新版本時,以時間或需求結束點為節點,打對應tag(方便以后回溯)。從該tag拉出release分支,Jenkins從release分支打包。
- 將包部署到QA環境,由專職QA進行測試。
- 如果測試不通過,從release分支中拉出hotfix分支,在hotfix分支上進行bug修復,本地測試完畢,Jenkins從hotfix分支打包,部署到QA環境測試。
- 測試通過,下一步。
- 將包部署到BTS環境,由專職QA進行測試。測試不通過,判斷當前分支,若為release分支,則從該分支拉出hotfix分支,在hotfix修復bug后;若為hotfix分支,則直接修改bug,本地測試完畢,Jenkins打包hotfix分支,部署到QA測試。
- 將包部署到PROD環境,由專職QA進行測試,測試不通過, 判斷當前分支,若為release分支,則從該分支拉出hotfix分支,在hotfix修復bug后;若為hotfix分支,則直接修改bug,本地測試完畢,Jenkins打包hotfix分支,部署到QA測試。
Git詳細流程:
上述的內容,僅為個人多年開發經驗總結,或許與標准流程有一定的出入。
如有錯誤之處,忘各位大佬不吝斧正。
作者:吳家二少
博客地址:https://www.cnblogs.com/cloudman-open/
本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接