当前位置: 首页 > 知识库问答 >
问题:

GIT-在生产中实现功能分支

盖嘉珍
2023-03-14

我的“功能”分支有重大更改,此“功能”分支从主分支更新:

git checkout feature
git pull origin master

虽然它已经被完全测试过了,但我仍然想玩得安全。我仍然不想把它合并到主分支。

所以在生产中,我想只是在“功能”分支上签出,所以如果有错误会禁止用户继续,我可以立即签出到主分支。

请注意,此主要实现不会影响任何现有的数据库例程。

这样很好,对吧?有什么想法吗?

共有2个答案

吴高峰
2023-03-14

这就好了,对吧?

在生产环境中手动部署永远不会好。如果您的功能已经准备好上线,那么应该将其合并以掌握并继续发布过程。如果功能上线后出现意外错误,则恢复过程开始工作。当我说“恢复过程”时,我不是说“git恢复”,以前的工作版本被存档在某个地方,可以快速轻松地切换回生产。这是底线,也是最糟糕的情况。通常情况下,您应该确保该功能在生产之前正常工作(比如测试和准备环境)。

回到GIT部分。如果您使用git分支作为我上面提到的“备份存档”(尽管不建议在生产中使用),如果您的代码没有冲突结果(例如db记录/磁盘文件/等),它就可以工作。

公良鸿禧
2023-03-14

对此没有正确的答案,因为这取决于您对正式生产环境的偏好、约束和要求。根据此环境的敏感程度(听起来您是在谈论一个用户数量少的不敏感系统),您希望确保您部署的任何新功能都经过了良好的测试,并且不会破坏预期的功能。您可以实现这一点,例如使用暂存环境、设置持续集成、使用Blue/Green部署或Canary发布等。

也许下面的文章将是一个很好的起点:部署到生产环境中——同样地,您可以在这里的Stack Overflow和interweb的其他部分找到许多关于CI/CD主题的提示。

一般来说,我建议使用git工作流,比如Vincent Driessen的分支模型,使用git标记,并确保功能分支保持较小,即每个功能或错误修复对应一个分支。这将限制同时将许多更改合并到主分支中的不确定性,并帮助您测试代码。

对于您的特殊情况,为什么不在主分支上创建一个git标记,并在测试后合并到feature分支中呢?然后,您可以创建一个新标记并将其发布到生产环境中。如果在部署后遇到任何错误,您可以随时回滚并部署上一个标记,或者创建一个bug fix分支来解决问题。

在GitHub存储库中创建标记

 类似资料:
  • 本文向大家介绍Android实现原生分享功能,包括了Android实现原生分享功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现分享功能的具体代码,供大家参考,具体内容如下 因为公司的需求,最近一直在做分享这一块的功能。大概有这样几种思路: 1.使用Intent调用andoird原生的分享功能; 2.使用第三方的sdk,比如ShareSdk或者友盟; 3.去对应的

  • 本文向大家介绍js实现分页功能,包括了js实现分页功能的使用技巧和注意事项,需要的朋友参考一下 本文仅为自己记录下编写过程,如有兴趣,或者疑问,请与我联系。 写前背景:java开发工作经验一年,现项目为SSM框架,使用maven管理项目。需要页面查询实现分页,网上找了很多插件,单独页面实现是好的,可是放到我的页面就没有效果,苦于自己也找不到原因,故写以下代码,很是粗糙,不过懒得整理成js文件了。

  • 本文向大家介绍ThinkPHP实现分页功能,包括了ThinkPHP实现分页功能的使用技巧和注意事项,需要的朋友参考一下 前几篇(上传,缩略图,验证码,自动验证表单)文章介绍的功能实现都是基于ThinkPHP框架封装好的类进行实现的,所以这次自己写一个分页类在框架中使用。 首先在根目录建一个Tools文件夹,在Tools文件夹下建Page.class.php类文件,这样以后自定义的工具类都可放在To

  • 本文向大家介绍Django实现分页功能,包括了Django实现分页功能的使用技巧和注意事项,需要的朋友参考一下 Django提供了一个新的类来帮助你管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。   基本语法实例  官方解释在视图中的应用 在template的html模板中的应用 举例讲述分页功能的使用目的说明   现要实现如下

  • 本文向大家介绍Android实现分享功能,包括了Android实现分享功能的使用技巧和注意事项,需要的朋友参考一下 Android应用中能很方便的完成这些功能,很多的应用中都有“分享”功能?如何分享呢?下面给大家说说看。 最近有人问到Android分享功能用那个比较好,使用Android自带的Intent来进行分享还是借助第三方呢,直接上代码: 一、使用Intent直接和第三方应用进行通信: 看代