本文由雲+社區發表作者:唐維黎
導語
基於gui工具TortoiseGit讓你快速進入git開發模式。
目前項目已逐步從svn移步到git開發模式,其中也針對git統一協議了適合git的開發規範, 最重要一點就是分支模型的,爲了規範開發,不直接在主幹上修改代碼,一切代碼都提交至分支dev,然後再由分支合併到主幹master。 首先保證每個倉庫下有以下兩個常駐分支(永遠不刪除的分支): master:主幹分支,始終保持跟外網服務器一致,只用於外網發佈,這樣就可以保證文件不會帶出去的風險; dev:基於master創建,用於開發新功能和新需求的分支。
開發流程如下:
1. 基於dev分支創建dev-xxx分支,開始進行普通的常規需求開發,開發完成後,Commit提交代碼到本地倉庫,如果這個新項目或者功能比較大有多人協同開發,怕會相互影響對方的代碼,現從dev-xxx分支創建新分支dev-xxx-user進行開發,前提是dev-xxx分支需要push到線上;
2. 開發完成後將dev-xxx分支合併到dev分支,然後部署dev到測試環境進行測試,測試過程中有bug的話修復完後同樣合併到dev分支。如果是在多人協同開發的情況下先將dev-xxx-user分支合併到dev-xxx,再將dev-xxx合併到dev分支;
3. 測試完成後,將dev分支合併到master分支,然後進行正式發佈。發佈完成後刪除dev-xxx和dev-xxx-user分支; 如果擔心在最後一步合併代碼到master時有問題,也可以在測試的時候隨時更新到本地master(先checkout master分支到本地),但不要push到線上,本地master 如果一定push到線上的話,這就要保證你的需求未測試發佈前,別人不會發master與你相關的文件~
另外,如果是外網BUG或者日常,就可以在master上直接創建分支,修復完成後發佈,定時同步dev分支,這樣可以提高效率 ~ 下面以一個簡單的需求來實際操作下,看看TortoiseGit的使用方法: (前提本地是有安裝git和TortoiseGit)
1. 克隆代碼倉庫到本地
在指定文件夾下,右鍵 -> Git Clone..
點確定後會提示你輸入用戶名和密碼,這個跟svn類似 然後等待一會代碼就成功克隆到本地了,速度比svn要快很多,另外也可以直接用命令行的方式
git clone XXXXX.git
代碼克隆後,後續分支都是在本地的同一份代碼上進行分支創建,而無需再次克隆~
2. 創建本地分支
創建分支前請實時git pull線上倉庫到本地,保證本地dev是最新 進入剛克隆下來的目錄,右鍵 -> TortoiseGit -> Create Branch..
3. 查看及切換當前分支
右鍵 -> TortoiseGit -> Switch/Checkout...
切換成功後,可通過Git bash查看是否真的切換過來
也可以在命令行直接git branch查看,高亮的爲當前分支 重要:注意在開發的時候請保證當前自己所修改的代碼是當前需求的分支
4. 開發完成後Commit
右鍵 Git Commit -> 'dev-xxx' 提交記錄一定要填 ,其它信息可選
Commit到本地倉庫,Commit這裏也可以直接一次性push到線上倉庫,但一般情況下不會這麼幹, 在多人協作的時候,其他人要合併代碼到dev-xxx分支時可以直接一鍵commit+push
5. 合併分支
首先切換到要合併的目標分支(切換分支見上述3),本次要將dev-xxx合併到dev分支,我們切換到dev分支, 右鍵 -> TortoiseGit -> Merge...
6. 提交到線上倉庫
右鍵 -> TortoiseGit -> Push...
會要求你輸入用戶名和密碼 提交成功後,提單部署測試環境
7. 合併到master主幹分支
測試通過並完成後,將dev分支合併到master並push到線上倉庫,提單發佈外網, 合併到master的時候,可以將線上的master分支checkout到本地,然後進行本地的dev和master合併,再push到線上, 也可以直接將本地dev直接合併到線上master(remotes/origin/master)分支,本地合併衝突比較好解決,也不會影響線上。
到此本次需求完成
此文已由騰訊雲+社區在各渠道發佈
獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社區-雲加社區官方號及知乎機構號