首頁 > 軟體

Git多人協同開發緊急修復線上bug操作指南

2022-06-25 14:00:02

使用場景

  • 團隊協同開發時,生產環境出現bug,需要緊急修復。
  • 每位同學在本地開發,對應原生的dev分支,本地測試通過後提交到測試環境的dev分支。
  • 測試環境有其他同學提交的程式碼,正在測試中,無法提交到生產環境的master分支。
  • 以上情況導致我們不能在本地基於dev分支修復bug,因為會和其他同學提交的測試中的程式碼“撞車”,導致無法及時提及到生產環境。
  • 這個時候如何正確使用Git管理程式碼呢?

解決思路

  • 首先我們從master拉取最新程式碼到本次建立臨時分支
  • 在本地緊急修復程式碼,進行測試,測試無誤後merge熱修復程式碼到dev分支
  • 本地merge測試分支和本地熱修復分支的程式碼,有衝突解決衝突,提交程式碼(保證緊急更新的程式碼能及時被其他同學拉取到)
  • 測試環境進行測試
  • 測試無誤後切換到master分支,merge緊急修復分支程式碼!(注意:是緊急修復分支的程式碼,不是測試dev分支程式碼,因為我們無法保證dev分支有無其他同學提交的未測試通過的程式碼!!!)
  • 推播master分支merge熱修復的程式碼到遠端倉庫,釋出專案
  • 如果需要的話新增tag標籤,標記一下操作。
  • 刪除熱修復分支,切換到dev分支,繼續自己的本地開發。

操作流程

  • 切換到master分支,拉取最新程式碼
git checkout master
git pull
  • 基於master分支建立熱修復分支
git branch master_hotfix
  • 切換到熱修復分支
git checkout master_hotfix
  • 本地開發,修復bug,測試
coding
  • 本地測試通過後,merge熱修復程式碼到dev分支
git checkout dev
git merge master_hotfix
  • 解決衝突,提交程式碼,測試環境進行測試
git push origin dev
  • 測試通過後,merge熱修復程式碼到master分支
git checkout master
git merge master_hotfix
  • 推播master程式碼到遠端倉庫
git push origin master
  • 新增tag標記:git tag -a 版本號 -m "註釋"
git tag -a 1.1.0 -m "緊急修復xxbug"
  • 推播tag
git push --tag
  • 刪除熱修復分支
git branch -d master_hotfix
  • 切換到開發分支,進行本地開發
git checkout dev

附錄:Git使用的小技巧

Git命令別名

  • 首先找到Git的組態檔,比如Mac系統下
vim ~/.gitconfig
  • 在組態檔中根據自己的使用習慣新增[alias],比如:
[alias]
br = branch
ci = commit
cl = clone
co = checkout
cp = cherry-pick
cfg = clone
df = diff
fh = fetch
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
mg = merge
pl = pull
plr = pull --rebase
rb = rebase
ph = push
rmt = remote
rst = reset
sh = stash
st = status
sts = status -s
sbm = submodule
sw = show
swf = "show --name-status"
delb = "push origin --delete"
delt = "push origin :"
mb = merge-base
  • 這樣我們就能使用簡化後的命令操作git了,進一步提高了效率。

比如:

git commit -m'註釋'

可以簡化為:

git ci -m'註釋'

總結

團隊共同作業是職業生涯中必須面對的問題,Git為我們程式碼的共同作業管理提供了強大的工具。 熟悉Git操作,擁抱團隊共同作業。

以上就是Git多人協同開發緊急修復線上bug操作指南的詳細內容,更多關於Git協同開發線上bug修復的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com