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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分享76个行业PPT,总有一款适合您

分享76个行业PPT,总有一款适合您 76个行业PPT下载链接:https://pan.baidu.com/s/17zUV16XOg9uBfDTH7sURxw?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知…

有趣儿的组件(HTML/CSS)

分享几个炫酷的组件&#xff0c;起飞~~ 评论区留爪&#xff0c;继续分享哦~ 文章目录 1. 按钮2. 输入3. 工具提示4. 单选按钮5. 加载中 1. 按钮 HTML&#xff1a; <button id"btn">Button</button>CSS&#xff1a; button {padding: 10px 20px;text-tr…

怎么使用ChatGPT提高工作效率?

怎么使用ChatGPT提高工作效率&#xff0c;这是一个有趣的话题。 相信不同的人有不同的观点&#xff0c;大家的知识背景和从事的工作都不完全相同&#xff0c;所以最终ChatGPT能起到的作用也不一样。 在编程过程中&#xff0c;如果我们要找一个库&#xff0c;我们最先做的肯定…

解决MAC连上wifi或热点却不能上网问题

解决MAC连上wifi或热点却不能上网问题 #新换的mac昨天还能连上wifi&#xff0c;今天就不好使了。 找到连接的wifi点击详细信息&#xff0c;选择TCP/IP 中的配置IPV4 选择关闭

【python学习篇1】python基本语法

一、第一个python程序 在控制台上面输出“你好 python”。 在venv目录下面&#xff0c;新建一个Main1.python的文件夹。 然后在文件当中使用print函数输出一句命令即可。 然后&#xff0c;在Main.py下面&#xff0c;右键一下&#xff0c;运行Main1.py&#xff1a;即可看到下…

港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明

港口码头航吊远距离相位测距仪|传感器PHR-120100广泛应用于港口码头、航车、位移监测、形变监测、钢铁、堆垛机、龙门吊等领域。 本文重点介绍港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明。 一、布局介绍 二、按键介绍 三、指示灯说明 四、显示屏操作说明 …

片上网络NoC(4)——直连拓扑

目录 一、前言 二、直连拓扑 三、总结 一、前言 本文中&#xff0c;我们将继续介绍片上网络中拓扑相关的内容&#xff0c;主要介绍直连拓扑&#xff0c;在此之前&#xff0c;我们已经介绍过了拓扑的指标&#xff0c;这将是继续阅读本文的基础&#xff0c;还没有了解相关内容…

[WinForm开源]概率计算器 - Genshin Impact(V1.0)

创作目的&#xff1a;为方便旅行者估算自己拥有的纠缠之缘能否达到自己的目的&#xff0c;作者使用C#开发了一款小型软件供旅行者参考使用。 创作说明&#xff1a;此软件所涉及到的一切概率与规则完全按照游戏《原神》(V4.4.0)内公示的概率与规则&#xff08;包括保底机制&…

BUGKU-WEB GET

题目描述 没有提示&#xff0c;就一个get&#xff0c;启动场景看看&#xff1a; 解题思路 显然是PHP语言解读分析代码吧写出你的payload 相关工具 略 解题步骤 进入场景分析代码 $what$_GET[what]; echo $what; if($whatflag) echo flag{****};前两句&#xff1a;使用get…

扩展速度提高了12倍!AWS Lambda 函数重大改进!

Marcia 是 Amazon Web Services 的首席开发倡导者&#xff0c;在软件行业构建和扩展应用程序方面拥有20年的工作经验。她热衷于设计能够充分利用云并拥抱DevOps文化的系统。最近她发表了一篇博文&#xff0c;带来了一个AWS Lambda重大改进&#xff1a;扩展速度提升了 12 倍&…

VUE学习——表单的输入绑定

使用【v-model】。 输入框 <template><h1>表单输入绑定</h1><input type"text" v-model"message"><p>输入的值&#xff1a;{{ message }}</p> </template> <script>export default{data(){return{messa…

Rabbit和Springboot整合(高阶)

在昨天的练习作业中&#xff0c;我们改造了余额支付功能&#xff0c;在支付成功后利用RabbitMQ通知交易服务&#xff0c;更新业务订单状态为已支付。 但是大家思考一下&#xff0c;如果这里MQ通知失败&#xff0c;支付服务中支付流水显示支付成功&#xff0c;而交易服务中的订单…

Python算法题集_LRU 缓存

Python算法题集_LRU 缓存 题146&#xff1a;LRU 缓存1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【队列字典】2) 改进版一【有序字典】3) 改进版二【双向链表字典】 4. 最优算法 本文为Python算法题集之一的代码示例 题146&#xff1a;LRU …

Xubuntu16.04系统中修改系统语言和系统时间

1.修改系统语言 问题&#xff1a;下图显示系统语言不对 查看系统中可用的所有区域设置的命令 locale -a修改/etc/default/locale文件 修改后如下&#xff1a; # File generated by update-locale LANG"en_US.UTF-8" LANGUAGE"en_US:en"LANG"en_US…

力扣hot2--哈希

推荐博客&#xff1a; for(auto i : v)遍历容器元素_for auto 遍历-CSDN博客 字母异位词都有一个特点&#xff1a;也就是对这个词排序之后结果会相同。所以将排序之后的string作为key&#xff0c;将排序之后能变成key的单词组vector<string>作为value。 class Solution …

【Linux】线程概念和线程控制

线程概念 一、理解线程1. Linux中的线程2. 重新定义线程和进程3. 进程地址空间之页表4. 线程和进程切换5. 线程的优点6. 线程的缺点7. 线程异常8. 线程用途9. 线程和进程 二、线程控制1. pthread 线程库&#xff08;1&#xff09;pthread_create()&#xff08;2&#xff09;pth…

点击侧边栏菜单时只切换 <router-view> 中的内容,而不是进行整个页面的路由跳转(动态路由)

解决方法&#xff1a;在 <el-menu> 的 select 事件中调用了 handleMenuSelect 方法来处理菜单项的选择。你可以在 handleMenuSelect 方法中根据菜单项的 index 来执行相应的操作&#xff0c;例如更新组件内的数据或者切换组件。由于整个页面的路由路径并没有改变&#xf…

【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 文章目录 【MyS…

智能汽车行业产业研究报告:4D成像毫米波雷达—自动驾驶最佳辅助

今天分享的是智能汽车系列深度研究报告&#xff1a;《智能汽车行业产业研究报告&#xff1a;4D成像毫米波雷达—自动驾驶最佳辅助》。 &#xff08;报告出品方&#xff1a;开源证券&#xff09; 报告共计&#xff1a;43页 视觉感知最佳辅助——4D 成像毫米波雷达 感知是自动…

Excel模板1:彩色甘特图

Excel模板1&#xff1a;彩色甘特图 分享地址 当前效果&#xff1a;只需要填写进度&#xff0c; 其余效果都是自动完成的 。 阿里网盘永久分享&#xff1a;https://www.alipan.com/s/cXhq1PNJfdm ​省心。能用公式的绝不使用手动输入。 ​​ 这个区域以及标题可以手动输入…