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

使用場景

  • 團隊協同開發時,生產環境出現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修復的資料請關註WalkonNet其它相關文章!

推薦閱讀: