协同开发时,如何科学的使用 Git 紧急修复线上 bug?
使用场景
团队协同开发时,生产环境出现 bug,需要紧急修复。
每位同学在本地开发,对应本地的 dev 分支,本地测试通过后提交到测试环境的 dev 分支。
测试环境有其他同学提交的代码,正在测试中,无法提交到生产环境的 master 分支。
以上情况导致我们不能在本地基于 dev 分支修复 bug,因为会和其他同学提交的测试中的代码“撞车”,导致无法及时提及到生产环境。
这个时候如何正确使用 Git 管理代码呢?
解决思路
首先我们从 master 拉取最新代码到本次创建临时分支
在本地紧急修复代码,进行测试,测试无误后 merge 热修复代码到 dev 分支
本地 merge 测试分支和本地热修复分支的代码,有冲突解决冲突,提交代码(保证紧急更新的代码能及时被其他同学拉取到)
测试环境进行测试
测试无误后切换到 master 分支,merge 紧急修复分支代码!(注意:是紧急修复分支的代码,不是测试 dev 分支代码,因为我们无法保证 dev 分支有无其他同学提交的未测试通过的代码!!!)
推送 master 分支 merge 热修复的代码到远程仓库,发布项目
如果需要的话添加 tag 标签,标记一下操作。
删除热修复分支,切换到 dev 分支,继续自己的本地开发。
操作流程
切换到 master 分支,拉取最新代码
基于 master 分支创建热修复分支
切换到热修复分支
本地开发,修复 bug,测试
本地测试通过后,merge 热修复代码到 dev 分支
解决冲突,提交代码,测试环境进行测试
测试通过后,merge 热修复代码到 master 分支
推送 master 代码到远程仓库
添加 tag 标记:git tag -a 版本号 -m "注释"
推送 tag
删除热修复分支
切换到开发分支,进行本地开发
附录:Git 使用的小技巧
Git 命令别名
首先找到 Git 的配置文件,比如 Mac 系统下
在配置文件中根据自己的使用习惯添加[alias],比如:
这样我们就能使用简化后的命令操作 git 了,进一步提高了效率。比如:
可以简化为:
总结
团队协作是职业生涯中必须面对的问题,Git 为我们代码的协作管理提供了强大的工具。熟悉 Git 操作,拥抱团队协作。
本文抛砖引玉,大家还有哪些 Git 使用技巧,欢迎在评论区赐教。
一起学习,升级打怪
我们搞了一个对学 Go 真正有帮助的群,欢迎加入:
公众号:程序员升级打怪之旅
微信号:wangzhongyang1993
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/9f12ac21a4caef66463aecc2d】。文章转载请联系作者。
评论 (1 条评论)