分支工作的一个较佳的实践, 即git工作的最佳实践

从最初的svn到后来的git,上来给我的感觉就是git更方便, 可以在本地进行版本的提交,回退. 后来对hash有所了解, 知道了git的每个版本其实都是一个固定的hash. 这个hash有自己的父节点, 只要记住了这个hash, 提交就不会丢失.
实际呢? 对git的理解也是在这里, 大家还是在一个 develop 上去开发, 工作模式跟 svn 其实没有差别(除了我们自己的个人分支外, 在本地可以进行一些其他的处理)

分支的功能

develop分支

1. 最初开发阶段

当初我们在 develop 分支上开发, develop 就相当于我们原来的 svn 的一个分支一样, 大家都在这里进行开发. 知道我们真的进行决定发版后.

2. 发布版本阶段

后来开始进行版本的发布后, 我们大家的工作版本仍然在 develop 分支上, 然后 test 分支会从 develop 上进行切过来, 然后 release 分支上又会从 test 分支上进行切出. 然后在对应的分支上进行bug的提交.

好处没有啥,就是比较好理解吧. 坏处是在 develop 上的东西终究会直接上到 release, 不能对某些功能进行很好的控制, 也不能很好的控制代码质量. 因为工程的功能点比较多, 也不可能对所有的功能进行全部的回归. 只能尽量的对一些改动的地方进行重点测试.

3. 按照功能点进行的分支控制

开始按照通用的工作流, 所谓的 git flow 进行开发.但是可能又会稍有不同.
我们每个人的开发起点都是基于 release 分支的(或者 master), 基于一个比较稳定的版本然后开始自己的特性分支开发. 每一个特性就是一个固定的功能.
基于功能点的分支,这个分支只是属于你的,如果这一个分支需要进行测试, 那么我们提交到 test 分支上去. test作为一个测试的分支, 是可以随时变化的.
如果需要上线的分支, 我们是会合并到 release 分支上去的.
develop分支作为一个开发内部的协调沟通分支.

后记与总结

记录的很乱, 最后也总结一个下.
每一个分支都有每一个分支的功能. 每个人又是在每个人的分支上进行开发, 这个开发的起点一定是稳定的分支, 这样你增加的功能就会比较单一(只是你自己开发的分支). 对于以后的发布和合并都会比较好处理. 如果分支的开发周期比较长, 最好经常 rebase 一下release 的代码, 避免以后合并处理的冲突较多.
develop: 开发内部的协调和自测分支;
test: 测试分支, 提测分支;
release: 发布分支, 比较稳定的分支;
master: 线上分支, 稳定版本的分支;

对于bug的修复, 如果是自己的特性分支问题, 那么就在自己的特性分支上开发. 如果是稳定版本的修复, 一定是在对应的稳定版本进行修复. 然后经过 test 分支的回归(如果是 hotfix 可以直接合并到 release 或者 master 上进行紧急测试), 合并到对应的版本上去.

git的实际工作经验总结的更多相关文章

  1. java后端程序员1年工作经验总结

    java后端1年经验和技术总结(1) 1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为 ...

  2. 一年工作经验的大专生程序员(java后台)

    1.文章前言     作为18应届毕业大专生已工作一年,相信这也是大部分同届生的现状.       那么,一个萌新进入职场一年都经历了什么呢?在校那会我是挺好奇的.       这篇文章是根据自己一年 ...

  3. 精干货! Java 后端程序员 1 年工作经验总结

    一.引言   毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少 东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护 和发布当救火队员的苦恼 ...

  4. 超人学院二期学员分享hadoop工作经验

    定于2月17日--2月23日的某一天,邀请咱们学员分享一下hadoop工作经验.对于没工作过的同学或者没从事过hadoop工作的同学,抓住机会啊,你可以提前准备自己关心的各种问题! 具体时间请关注QQ ...

  5. 经过本人 6 年.net 工作经验证明 .net 工资确实比 Java 低

    很久没有逛博客园了,很久没有出来吐槽了.怎么呢?生活压力大,就需要找地方吐槽. 排版不怎么好,文笔不怎么好,可以看出我不是雇佣的写手. 工作到今夏,已经有6个年头了,一直使用着.net技术,但是最近工 ...

  6. 2年Java开发工作经验面试总结

    最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪 ...

  7. 一位10年Java工作经验的架构师聊Java和工作经验

    从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一, ...

  8. 一位IT男的7年工作经验总结

    一位IT男的7年工作经验总结 1.分享第一条经验:"学历代表过去.能力代表现在.学习力代表未来." 其实这是一个来自国外教育领域的一个研究结果.相信工作过几年.十几年的朋友对这个道 ...

  9. 一年iOS工作经验,如何一举拿下百度、美团、快手等Offer面经(附面试题)

    前言: 先简单说说我最近的面试经历吧.面试的公司很多,大部分最后都能得到令人满意的结果,我将这些体会记录下来,面了这么多公司,如果不留下什么,那岂不是太浪费了.对于我来说,这也是一次自我检查,在这次面 ...

随机推荐

  1. Java初学心得(二)

    数组概述 一,数组基本操作 ①一维数组的创建:数组元素类型[] 数组名字=new 数组类型[数组元素个数] 例:int []arr=new int[5];数组长度为5 ②初始化一维数组:第一种:int ...

  2. iOS - 适配iOS 11

    http://www.10tiao.com/html/330/201707/2653579210/1.html 存档 导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆.动态的新风格. ...

  3. RobotFramework+Eclipse的安装和配置(一)

    最近想学robotframwork来做自动化,那立马就来开始上手 想动手,起码要先下载工具,工具及框架 工具介绍 Robotframework:一款自动化测试框架. Eclipse:一款编辑工具,可以 ...

  4. oracle命令行导出、导入dmp文件

    1.导出语句: exp test/test@127.0.0.1:1521/orcl file=d:\gpmgt.dmp full=n: 导出test用户数据库对象,full=n表示默认只导出test用 ...

  5. Flink 使用(一)——从kafka中读取数据写入到HBASE中

    1.前言 本文是在<如何计算实时热门商品>[1]一文上做的扩展,仅在功能上验证了利用Flink消费Kafka数据,把处理后的数据写入到HBase的流程,其具体性能未做调优.此外,文中并未就 ...

  6. Linux磁盘管理——MBR 与 GPT

    硬件设备在Linux中文件名 如今IDE 磁盘几乎被淘汰,市面上最常见的磁盘就是SATA和SAS.个人计算机主要是SATA.很多Linux发行版下都将IDE磁盘文件名也都被仿真成 /dev/sd[a- ...

  7. ISCC之Re2

    硬核rust逆向 首先去学了一天rust...我TMD IDA打开,跟踪主函数 看一下伪代码,发现有一串密文 跟进去发现一串数据,猜测有可能是flag的加密数据,于是回头去分析算法 发现一个关键点 i ...

  8. WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法

    [转] https://www.cnblogs.com/chrischeng/p/10237523.html 最近在做一个WebSocket项目,后台使用了Stomp协议的WebSocketConfi ...

  9. Xshell 5连接上suse

    # 关闭防火墙 systemctl stop SuSEfirewall2.service systemctl stop SuSEfirewall2_init.service systemctl dis ...

  10. Vuex状态管理总结

    一.什么是 Vuex 1.Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 2.Vuex 采用集中式存储和管理应用中所有组件的状态 3.Vuex 应用的核心是 store(仓库)-- 包 ...