使用git的分支功能实现定制功能摘取与组合的想法
前言,这个想法应该是git比较通用的做法,只是我还没用过,所以把自己的想法记录在这里,督促自己以后按这个方式执行。
我们公司现在面临一个问题, 就是客户的定制需求很多,很杂,其中坑爹需求很多。
我还没真正面对过这些问题, 不过以在上一家公司的经验,有一些坑爹的需求,往往先加进来,用一段事件后,又会被还原成原本的样子。
对于这种问题,以前是没有很好的解决方案的,因为这种坑爹需求从加入到还原,中间还插入过很多其他的功能点修改。
很难一步还原。
而我想到的方法是这样的, 其实应该也是git建议的用法,
即每次有新的功能点需求, 都为这个功能点创建一个分支,如fp1(function point1)分支,在该分支下做专属于这个功能点的改动。
如果其中需要改动到公用或全局的东西,理想情况下就先切换回主分支(一般是master)上,重构代码后,再到fp1下完成专属于功能点的改动。
在完成fp1后,再将其合并到master上,注意要写好提交的comment。
这样,在经过若干个功能点的提交之后。如果发现某个功能点需要被删除,或者要求被还原,这是,只要找到这个功能分支的合并提交点,将该次合并的修改还原即可。
这个方案还有2个明显的问题没有考虑清楚:
1.每个功能点分支在合并到主分支之后,是否要删除?
2.如果删除了,而这个功能点需要再次扩展或维护时,怎么办?
3.如果不删除,在经过较长时间后,再修改该功能,是否将主分支合并到该功能分支上,再进行修改? 如果是这样的话,会不会有什么问题?
对于上述3个问题,期待有经验的同学解答。 我暂时采取的解决方案是:
分支在合并后,短期内不删除(如一周或一个月,视项目组开发情况而定),在短期内不再出现改动后,删除分支。 但是在提交时注明功能点分支名称和合并说明。当需要根据该功能点进行维护时,新建分支,如果原分支名为fp1,那么新分支取名要和原分支名能明显看出有关联,如fp1-1。
在分支fp1-1合并后, 如果发现fp1需要整个还原,则找出fp1和fp1-1的合并记录,依次还原2次合并。 如果只要还原fp1-1,则只还原fp1-1的合并即可。
个人的想法就到这里, 由于只是想法,还未经过实践, 而实践是检验真理的唯一标准,所以接下来的工作我会实际试试我的想法,看效果如何。
之后如果有什么体会,或发现文中有什么错误,也会更新到该博文中。
使用git的分支功能实现定制功能摘取与组合的想法的更多相关文章
- git学习笔记10-新开发的功能不想要了-强行删除分支
添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支. 现在,你终于接 ...
- Git -- 新增分支添加新功能
软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合 ...
- canvas菜鸟基于小程序实现图案在线定制功能
前言 最近收到一个这样的需求,要求做一个基于 vue 和 element-ui 的通用后台框架页,具体要求如下: 要求通用性高,需要在后期四十多个子项目中使用,所以大部分地方都做成可配置的. 要求做成 ...
- antd在线换肤定制功能
最近react项目,用的antd框架,然后看见他的antdPro例子里面有个定制功能很帅,老大说做,那就做吧,鼓捣了一晚终于实现了. 先看预览效果吧 css换肤 入行前端的时候经常看鱼哥(张鑫旭)的博 ...
- 微信小程序一键生成源码 在线制作定制功能强大的微信小程序
微信小程序发展到现在,短短的一年不到的时间(很快就要迎来微信小程序周年庆),在快迎来周年庆之际,百牛信息技术bainiu.ltd特记录一下这个发展的历程,用于将来见证小程序发展的辉煌时刻,我们还能知道 ...
- git Bug分支
Bug分支 软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接 ...
- git Feature分支
Feature分支 软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在 ...
- git 利用分支概念实现一个仓库管理两个项目
需求描述:开发了一个网站,上线之际,突然另一个客户说也想要个一样的网站,但网站的logo和内部展示图片需要替换一下,也就是说大部分的后台业务逻辑代码都是一致的,以后升级时功能也要保持一致:刚开始想反正 ...
- 好代码是管出来的——Git的分支工作流与Pull Request
上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级 ...
随机推荐
- 【Java每日一题】20161026
20161025问题解析请点击今日问题下方的"[Java每日一题]20161026"查看 package Oct2016; import java.util.Date; publi ...
- Android提升篇系列:Android项目代码优化实践
Android开发中,不同的开发团队,不同的开发人员,在实际编码中会有一些不同的地方.但是,具有一定的更普适性的编码习惯,无疑还是相当重要的.本文主要罗列项目中常见的一些编码片段,并给出相关建议. 1 ...
- PHP mongodb AR
<?php /** * @author xiaojiang */ abstract class MongoAr{ private $db = null; public function __co ...
- PHP curl超时问题
今天调试一个非常老的代码时 发现nginx服务器超时 改了下nginx配置 发现是后台脚本一直等待 排查到最后发现是curl 超时引起的等待 具体解决方案: curl_setopt( $this ...
- 【FFmpeg】Windows下FFmpeg调试
为了深入了解ffmpeg的工作原理,需要阅读源代码,调试源代码.在Windows下调试ffmpeg源码,一种方法是在MinGW+Msys环境下,利用GDB进行调试:另一种是借助Eclipse进调试,其 ...
- GJM :C++ 网络编程 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- 在 Windows 上遇到非常多 TIME_WAIT 連線時應如何處理
我們公司所代管的網站裡,有幾個流量是非常大的,在尖峰的時刻同時上線人數可能高達數千到數萬人,而在這個時候如果使用 netstat 或 TCPView 查看所有 TCP 連線時就會看到非常多處於 ...
- 05Mybatis_入门程序——根据id查询用户
这篇文章我们来做一个入门的案例: 建表: /* SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis ***************** ...
- Codrops 实验:使用 Vibrant.js 提取图像颜色
Codrops 分享了一个有趣的颜色提取实验.这个想法是创建图像的调色板,既有图像本身的潜移默化的影响,也有一些花哨的颜色延伸.通过使用 Vibrant.js 来提取图像中的颜色,并通过 CSS 过滤 ...
- 20个优秀的 JavaScript 键盘事件处理库
键盘事件是 Web 开发中最常用的事件之一,通过对键盘事件的捕获和处理可以提高网站的易用性和交互体验.下面,我们向大家介绍收集的20款优秀的 JavaScript 键盘事件处理库,帮助开发人员轻松处理 ...