本文由雲+社區發表
作者:唐維黎
導語
基於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)分支,本地合並沖突比較好解決,也不會影響線上。
到此本次需求完成
此文已由騰訊雲+社區在各渠道發布
獲取更多新鮮技術干貨,可以關注我們騰訊雲技術社區-雲加社區官方號及知乎機構號