【Git实战】协同开发,如何紧急修复线上bug?

简介: 1. 团队协同开发时,生产环境出现bug,需要紧急修复。2. 每位同学在本地开发,对应本地的dev分支,本地测试通过后提交到测试环境的dev分支。3. 测试环境有其他同学提交的代码,正在测试中,无法提交到生产环境的master分支。4. 以上情况导致我们不能在本地基于dev分支修复bug,因为会和其他同学提交的测试中的代码“撞车”,导致无法及时提及到生产环境。5. 这个时候如何正确使用Git管理代码呢?

使用场景


  1. 团队协同开发时,生产环境出现bug,需要紧急修复。
  2. 每位同学在本地开发,对应本地的dev分支,本地测试通过后提交到测试环境的dev分支。
  3. 测试环境有其他同学提交的代码,正在测试中,无法提交到生产环境的master分支。
  4. 以上情况导致我们不能在本地基于dev分支修复bug,因为会和其他同学提交的测试中的代码“撞车”,导致无法及时提及到生产环境。
  5. 这个时候如何正确使用Git管理代码呢?


解决思路


  1. 首先我们从master拉取最新代码到本次创建临时分支
  2. 在本地紧急修复代码,进行测试,测试无误后merge热修复代码到dev分支
  3. 本地merge测试分支和本地热修复分支的代码,有冲突解决冲突,提交代码(保证紧急更新的代码能及时被其他同学拉取到)
  4. 测试环境进行测试
  5. 测试无误后切换到master分支,merge紧急修复分支代码!(注意:是紧急修复分支的代码,不是测试dev分支代码,因为我们无法保证dev分支有无其他同学提交的未测试通过的代码!!!)
  6. 推送master分支merge热修复的代码到远程仓库,发布项目
  7. 如果需要的话添加tag标签,标记一下操作。
  8. 删除热修复分支,切换到dev分支,继续自己的本地开发。


操作流程


  1. 切换到master分支,拉取最新代码


git checkout master
git pull


  1. 基于master分支创建热修复分支


git branch master_hotfix


  1. 切换到热修复分支


git checkout master_hotfix


  1. 本地开发,修复bug,测试


coding


  1. 本地测试通过后,merge热修复代码到dev分支


git checkout dev
git merge master_hotfix


  1. 解决冲突,提交代码,测试环境进行测试


git push origin dev


  1. 测试通过后,merge热修复代码到master分支


git checkout master
git merge master_hotfix


  1. 推送master代码到远程仓库


git push origin master


  1. 添加tag标记:git tag -a 版本号 -m "注释"


git tag -a 1.1.0 -m "紧急修复xxbug"


  1. 推送tag


git push --tag


  1. 删除热修复分支


git branch -d master_hotfix


  1. 切换到开发分支,进行本地开发


git checkout dev


附录:Git使用的小技巧


Git命令别名


  1. 首先找到Git的配置文件,比如Mac系统下


vim ~/.gitconfig
复制代码


  1. 在配置文件中根据自己的使用习惯添加[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
复制代码


  1. 这样我们就能使用简化后的命令操作git了,进一步提高了效率。 比如:


git commit -m'注释'


可以简化为:


git ci -m'注释'


总结


团队协作是职业生涯中必须面对的问题,Git为我们代码的协作管理提供了强大的工具。 熟悉Git操作,拥抱团队协作。


公众号:程序员升级打怪之旅

微信号:wangzhongyang1993

相关文章
|
7月前
|
开发工具 git
【git 实用指南】git 修复错误提交,版本回退
【git 实用指南】git 修复错误提交,版本回退
106 1
|
7月前
|
存储 前端开发 开发工具
Git Hooks实战:提交前检查修改文件中是否包含调试代码
Git Hooks实战:提交前检查修改文件中是否包含调试代码
110 0
|
7月前
|
前端开发 算法 开发工具
Git分支批量清理利器:自定义命令行插件实战
Git分支批量清理利器:自定义命令行插件实战
134 0
|
7月前
|
前端开发 开发工具 git
Git 标签(Tag)实战:打标签和删除标签的步骤指南
Git 标签(Tag)实战:打标签和删除标签的步骤指南
|
2月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
264 0
|
2月前
|
Linux 开发工具 git
企业级Git管理工作流分析--GIT实战详解
企业级Git管理工作流分析--GIT实战详解
52 0
|
7月前
|
数据可视化 Go 开发工具
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
80 0
|
4月前
|
开发工具 git
Git 高手之路:高级特性与实战技巧揭秘
【8月更文第16天】在日常开发工作中,Git 已成为版本控制不可或缺的工具。本文将介绍 Git 的一些高级特性和实战技巧,帮助你更好地管理项目和团队协作。
53 1
|
5月前
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
|
5月前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程