Git分支和迭代流程

Git分支

feature分支:功能分支

dev分支:开发分支

test分支:测试分支

master分支:生产环境分支

hotfix分支:bug修复分支。从master拉取,修复并测试完成merge回master和dev。

某些团队可能还会有 realese分支:预发布分支。

release 为预上线分支,提测阶段,会以release分支代码为基准提测,用于QA测试。release分支内容可以从feature分支合并,测试完成merge回master。

一、Git版本迭代

1.版本开始:从远程master分支拉出新的远程feature分支

2.本地开发:本地checkout到feature分支

3.提交代码:本地feature推送到远程feature分支

4.开发自测:feature分支,合并到远程dev分支。

5.测试环节:开发自测完毕后,开发提测,进入测试环节。把远程feature分支,合并到远程test分支。。

6.测试完毕,远程feature分支,合并到master。发版。

feature分支,合并到远程dev分支

  • 本地先切到dev分支。

  • 然后将远程的feature分支合并到本地dev分支

  • 再将本地dev分支推送到远程的dev分支。

  • 切回本地的feature分支。

处理合并冲突

如果A同学在featureA分支,B同学在featureB分支,分别修改相同的内容,那么在合并到dev分支时,就会有冲突。这时需要处理合并冲突:

  • 如果发现代码有冲突,可以尝试将master的代码合并到自己的feature,再合并到dev分支。

因为feature分支是从master分支拉出来的,如果还有新的feature分支提交到master,那么自己的feature分支代码就是滞后的。

  • 如果还是有冲突,自己修改的就自己合并,如果不是自己写的代码,那可以找修改代码的同学进行合并。

可以选择左边的远程分支上的代码,也可以选择右边的代码,而中间是合并的结果。

cherry pick 摘取其他分支的comment

如果想把 feature_v1.0 分支的comment 摘到 feature_v1.0_new 分支上,
需要先切换到 feature_v1.0_new分支,然后点击 下面菜单栏的 git,点击Local Changes旁边的 Log,这时能看到 local和remote的分支,点击feature_v1.0分支。
从feature_v1.0,选中自己需要的comment,点击cherry pick,就能摘到 feature_v1.0_new。

check pick结果如下:

三、注意点:

  • 代码已经提交到master分支并发布,那么就不要再修改对应的feature分支。保留现场。

  • dev分支、test分支的代码,不要合并到feature分支。

因为dev分支、test分支可能是包含多个feature的,一旦feature分支被污染,包含了其他feature的内容,

那么feature分支合并到master的代码,就可能包含未测试的代码。这会导致生产问题。

dev分支不小心合并到feature分支,怎么处理?

  • Idea(或者其他开发工具)新建一个文件夹,从Git重新clone,不然可能会读到本地缓存。(开发工具没有本地缓存就不需要做这一步)

  • 从master重新拉feature-new分支在本地切换到这个新的feature-new分支。

  • 从Git提交记录中,选择旧的远程feature分支,选中自己需要的内容,做cherry-pick,提交人选择自己,被污染的部分不要cherry-pick。
    从最旧的记录一直cherry-pick,直到最新的记录。

  • 备份旧的feature分支 feature-backup,并删除掉旧的feature分支。
    从feature-new分支,拉取出新的feature分支。分支没有污染了。

release分支有什么用?

如果发版时,要发布的服务和功能非常多,如果直接合并到 master 分支,验证不通过的话,回滚会非常麻烦。因此,先从 feature 分支合并到 release 分支,在验证通过后,才将 release 分支合并到 master 分支,会更加稳妥一些。

参考资料

https://www.cnblogs.com/peace-ful/p/15407168.html
注:本文介绍的只是git流程的一种,能够适应多版本并行。也可以使用标准的 git flow流程,详情见:
https://blog.csdn.net/sunyctf/article/details/130587970

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466775.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单例模式:懒汉饿汉线程安全问题

在我们前几篇文章中都了解了一些关于线程的知识,那么在多线程的情况下如何创建单例模式,其中的线程安全问题如何解决? 目录 1.什么是单例模式? (饿汉模式) 2.单例模式(懒汉模式) *懒汉模式与懒汉模式的对比 *如何解决懒汉模式…

CVE-2022-25578 漏洞复现

CVE-2022-25578 路由/admin/admin.php是后台,登录账号和密码默认是admin、tao,选择文件管理。 是否还记得文件上传中的.htaccess配置文件绕过发,在这个文件中加入一句AddType application/x-httpd-php .jpg,将所有jpg文件当作php…

《SQLi-Labs》05. Less 29~37

title: 《SQLi-Labs》05. Less 29~37 date: 2024-01-17 22:49:10 updated: 2024-02-12 18:09:10 categories: WriteUp:Security-Lab excerpt: HTTP 参数污染,联合注入、宽字节注入。 comments: false tags: top_image: /images/backimg/SunsetClimbing.p…

2024年教师资格证认定报名完整流程

💚网上报名流程概览 一、进入教资认定网报入口; 二、进行实名核验; 三、申请网报时间查询; 四、个人信息维护; 五、认定申请报名; 💚认定所需材料 1、 身份证; 2 、户口本/居住证…

LayoutInflater源码解析及常见相关报错分析

在日常Android开发中,最经常使用的RecyclerView控件是大家都绕不开的,而编写其Adapter时更离不开LayoutInflater的调用。当然,如果你做这一行有些时日了,相信你对其使用一定是炉火纯青了。即使如此,我觉得LayoutInflat…

【COMP337 LEC2】

Association Pattern Mining 关联模式挖掘 Special case: Frequent Pattern Mining (binary data sets) 频繁模式挖掘 Given data matrix, identify all subsets of columns ( features ) such that at least a fraction of rows (objects ) in the matrix have all the featur…

雨云裸金属服务器

雨云服务器与裸金属服务器:云端与实体的完美交融 随着信息技术的迅猛发展,云服务已经成为企业和个人数据处理与存储的重要选择。其中,雨云服务器和裸金属服务器作为两种截然不同的服务形式,各自拥有独特的优势和应用场景。本文将深…

Solidworks:从2D走向3D

Sokidworks 的强大之处在于三维实体建模,这个形状看似复杂,实际上只需要拉伸一次,再做一次减法拉伸就行了。第一次做三维模型,费了不少时间才搞明白。 接下来做一个稍微复杂一点的模型,和上面这个操作差不多&#xff0…

Hive SQL编译成MapReduce任务的过程

一、 Hive 底层执行架构 Hive是Facebook实现的一个开源的数据仓库工具。 Hive基于Hadoop实现,底层数据存放HDFS,计算(查询)使用MapReduce任务实现将结构化的数据文件映射为数据库表,并提供HQL查询功能,将HQ…

Netty应用(九) 之 编解码器概念 Netty常见的编解码器

目录 22.编解码器 22.1 编解码的概念 22.2 netty中的编解码 22.3 序列化 23.编解码器在使用过程中的两部分核心内容 23.1 序列化协议(编码格式)(传输数据的格式) 23.1.1 Java默认的序列化与反序列化 23.1.2 XML的序列化与反…

Netty应用(十) 之 自定义编解码器 自定义通信协议

目录 25.自定义编解码器 25.1 自定义编解码器编码 25.2 自定义编解码器的总结和补充 26.自定义通信协议 26.1 关于通信协议的关注点 26.2 自定义通信协议的格式 26.3 编解码 25.自定义编解码器 有了上面这个大体框架的流程之后,我们来聊一个非常特殊的&#x…

《Linux 简易速速上手小册》第5章: 用户与群组管理(2024 最新版)

文章目录 5.1 管理用户账户5.1.1 重点基础知识5.1.2 重点案例:创建一个新的开发者账户5.1.3 拓展案例 1:禁用用户登录5.1.4 拓展案例 2:设置账户到期 5.2 群组概念与管理5.2.1 重点基础知识5.2.2 重点案例:为项目团队设置群组5.2.…