目录
从master的tag标签复制最新线上代码,新建fix分支,分支名sprint#{版本号}
分支参考地址:【Git管理篇】GitLab 版本分支管理策略(二) - 煮酒论余生·g - 博客园
常用分支
分支 | 说明 | 代码来源 | 代码输入方式 | 生命周期 | 命名规则★ |
★master | 线上发版主分支,每次发版要有洗的标签tag | release、hotfix | Pull request | 长期 | Master |
★master-dev | 开发分支,通常作为其他分支的源分支,也最终会合并回此分支 | feature、 release、hotfix | Pull request | 长期 | master-dev |
fix | 修复分支,用于正式版本的紧急修复 | tag | Merge | 并入目标分支后,删除 | Fix{版本号} |
Idea新建标签,推送的远程仓库
- 参考文档:idea中git标签(tag)的创建与使用 - 李东平|一线码农 - 博客园
- 推荐直接在gitlab上面建tag,界面操作,简单方便
分支合并
Master分支:只做发版使用,不在此分支上做任何修改,只做合并操作
Master-dev:测试和本地开发使用分支,做新需求开发
Fix分支:从master分支的tag标签中复制过来,只做线上bug修复
线上bug修复
- 从master的tag标签复制最新线上代码,新建fix分支,分支名sprint#{版本号}
- 修复完毕之后,测试通过;
- 然后合并到master分支,打上新的tag;
- 再把修改的代码合并到master-dev分支。
以下是线上bug修复完整演示截图
演示项目:mybranch(在gitlab上,不清楚操作步骤的可以下载下来耍一耍)
从master的tag标签复制最新线上代码,新建fix分支,分支名sprint#{版本号}
原始代码显示截图
从最新的tag拉取分支
选择最新的tag,新建分支
本地idea拉取最新分支fix11,然后修改bug
修复完毕之后,测试通过;
然后合并到master分支,打上新的tag;
进入项目,点击分支
两种情况,指定Assignee和不指定
不指定assignee,直接合并
填写相关信息,点击合并请求
给master打上新的tag
新的标签就这么产生了
再把修改的代码合并到master-dev分支
因为解决线上bug的时候,master-dev开发分支可能已经开发了部分新需求了,所以再把线上bug修复合并到master-dev分支的时候,难免会碰到冲突,一下演示冲突解决。
合并fix11分支到master-dev
点击合并分支
合并分支从fix11->master-dev
合并分支请求
会发现存在冲突,因为dev和fix分支都改了同一个文件
点击解决冲突,进去之后调整代码,解决有冲突的地方就行了