网站首页 > 精选文章 正文
一个团队的发展往往是由小到大,流程也是由散乱到规范的.以我们公司为例,我是两三年前来到公司的,当时我们团队只有七八个人.现在发展到了七八十人左右.我们的代码管理也有github迁移到了本地的bitbucket上了.其实呢刚开始的时候也没有什么代码管理,github也就是个存放代码的地方.现在好点了,代码上线要提交pr.分支也慢慢规范起来(我们有两个永久分支master和develope,master是线上的,develope是测试分支,其余的分支都是一些功能和bug分支).
最近呢,又出现一个让人头疼的事情.我们的测试人就一个.往往测试这个功能还没有测完,新的的功能就已经合并到develope.这就导致我们上线时候,都不知道有哪些功能.然后产品就来找了.怎么有些功能不好用就上线了.就让我们控制一下.不能这样瞎搞.然后我也开始思考,怎样才能避免这种情况呢.
开始
首先我们先说一下git的几种工作方式吧
1.集中式
大家都是在一个分支上开发,测试上线.你要是一个人开发没有问题.两三个人开发就容易出现冲突.master分支上代码混乱.所以我们可以试一下下面这种模式
2.功能分支式
大家的功能呢,都在自己的分支上去做.等你功能做完了,然后合并到master分支.你也可以建一个develope分支作为测试.大家的功能分支先合并到develope分支上测试.测试成功,将develope合并到master上线,之前我们就是这种模式.这种模式还是不够规范.缺点上面也说过了.等你们有两个团队之间的合作的时候,那你可以试一下下面的模式
3.gitflow工作流
这种模式中我们分了几种类型的分支
master(正式发布分支) develope(功能集中分支)两个永久分支,
release/v1(测试预发布分支1)两个临时分支
其余的feature功能分支,bug问题分支,hotfit修复分支等多个临时分支
gitflow工作流
在这中模式中,我们又可以分为三种情况吧
1.一般流程
开发人员,从develope分支checkout出一个自己的feature分支,在自己分支上修改.暂存.提交.然后提交pr(pull request,合并分支请求)到develope分支.在某个时间点(一般是测试人员针对上一次的功能测试完成后),从develope分支checkout出一个预发布分支release/v1用来测试,冻结测试的功能,其余的还可以正常提交pr到develope分支,但是新提交的功能不会在此次功能测试中,推迟到下一次的的预发布中测试.如果测试中遇到问题,开发人员直接在release/v1分支上修改提交即可.等测试完成后,将release/v1分支合并到master和develope分支做发布操作.一定要合并会develope分支,因为release/v1中可能会有新的提交.最后将release/v1分支删除,为什么删除呢,因为如果你不删除,那你下次预发布测试的时候,你需要提交从develope分支到release/v1分支的pr.pr的合并呢,又需要点赞.还不如直接删除了方便.但是删除之前一定要保证你的release/v1已经合并回develope和master上了.至此,一个版本发布完成.如此循环发布
2.线上紧急问题修复(紧急功能上线不测试)
对应开发人员,从master分支chekcout出一个hotfix分支,修改,提交修复.然后提交pr合并到master和develope分支中.
3.紧急功能上线测试
对应的开发人员从当前的master分支中checkout出一个自己的feature分支,添加,提交即可.等待此次版本发布完成.发布完成后release/v1版本的创建就以当前紧急功能的分支为基础.后续操作跟一般流程一样.
总结
master分支是稳定分支,develope是相对稳定分支,develope应该是所有功能比较新的分支.我们要时时保证我们正常的功能代码都会出现在master分支和develope分支.要不然有可能会出现代码丢失的情况.
其实呢,具体的情况还是要根据自己团队的实际.可能我们这边的流程还不是很完善.但是呢,慢慢的我们也会完善起来.
最后这,我想加一点,之前说分享过git的回滚,当时只在本地回滚完,最后没有提交到远程,那提交到远程怎么操作呢,正常的git push 是不可以的,因为你本地的分支回滚了,就会落后远程分支,他会提示你要先pull.如果你pull了,那你不就是白回滚了,所以你需要价格--force的参数,强制更新到远程分支上,但是你push上去后,如果别人在你回滚期间提交了新代码.那别人的的代码就会消失.但是呢,别人哪里分支会提示比线上提前了,如果别人不知道什么情况,直接push上去后,你远程回滚的代码就没有效果了.所以还是不建议去回滚远程分支.是个比较绕的操作.这个是我最近用回滚的时候发现的,在这里说一哈.git学习(3)--代码回滚
- 上一篇: Git详细使用教程
- 下一篇: 掌握这 20 个 Git 命令,成为团队协作高手!
猜你喜欢
- 2025-05-22 如何基于Docker和Jenkins打造面向初创公司的持续集
- 2025-05-22 Flutter无脑入门-从零到第一个APP
- 2025-05-22 git 子模块
- 2025-05-22 我见过的最糟糕代码
- 2025-05-22 掌握这 20 个 Git 命令,成为团队协作高手!
- 2025-05-22 Git详细使用教程
- 2025-05-22 git版本管理总有问题,建议使用git flow
- 2025-05-22 浅聊Gitflow、Github flow、Gitlab flow三种常用工作流
- 2025-05-22 GIT最佳实践,高效提升多团队协同开发效率
- 05-22如何基于Docker和Jenkins打造面向初创公司的持续集
- 05-22Flutter无脑入门-从零到第一个APP
- 05-22git 子模块
- 05-22我见过的最糟糕代码
- 05-22掌握这 20 个 Git 命令,成为团队协作高手!
- 05-22gitflow的工作流
- 05-22Git详细使用教程
- 05-22git版本管理总有问题,建议使用git flow
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)