Git协作场景

1、日常需求开发

在日常开发中,研发人员通常需要从 develop 分支创建 feature 分支进行功能开发,并在开发完成后将其合并回 develop。常规的操作流程如下:

  1. 创建 feature 分支: 研发人员从 develop 分支创建一个新的 feature 分支:

    git checkout develop
    git checkout -b feature/feature-xxx
  2. 日常提交与定期同步: 开发过程中,研发人员可能会多次提交代码(如每日备份)。为了保持 feature 分支与 develop 分支同步,建议定期执行 git rebase develop,将 develop 分支的最新提交应用到 feature 分支上,解决冲突,避免未来合并时遇到问题:

    git checkout feature-xxx
    git rebase develop
  3. 清理提交历史: 在功能开发完成后,研发人员可以使用交互式 rebase (git rebase -i) 来合并、删除或修改提交信息,保持提交历史简洁。例如,将多次备份提交整合为一个有意义的提交:

    git rebase -i HEAD~10
  4. 合并回 develop: 功能开发完成后,将 feature 分支合并回 develop,并推送远程:

    git checkout develop
    git merge feature-xxx

2、处理紧急Bug

当生产环境出现紧急问题时,需要使用 hotfix 分支进行修复。hotfix 分支从 master 创建,修复完成后合并回 masterdevelop,保证生产环境和开发环境都包含修复。

  1. 创建 hotfix 分支: 从 master 分支创建紧急修复分支:

    git checkout master
    git checkout -b hotfix/hotfix-xxx
  2. 修复 Bug 并提交: 修复紧急问题后,提交代码并推送远程:

    git add .
    git commit -m "Fix urgent bug xxx"
    git push origin hotfix/hotfix-xxx
  3. 合并回 masterdevelop: 修复完成后,将 hotfix 合并回 master 并打上版本标签,发布到生产环境:

    git checkout master
    git merge hotfix/hotfix-xxx
    git tag -a v1.0.1 -m "Release version 1.0.1"

    同时,将修复合并回 develop,保证后续版本中包含该修复:

    git checkout develop
    git merge hotfix/hotfix-xxx

3、选择性合并(git cherry-pick

在某些场景下,可能希望将某个修复提交或功能提前应用到生产环境,而不是等到整个分支合并。这时可以使用 git cherry-pick 挑选特定的提交,将其应用到另一个分支。

  1. develop 中找到要挑选的提交:

    git log --oneline
  2. 切换到目标分支(例如 master),并应用该提交:

    git checkout master
    git cherry-pick <commit-hash>

4、使用 git commit --fixup 修复提交

在开发过程中,可能会在提交代码后发现某些错误或问题需要修复。此时可以使用 git commit --fixup 创建一个修复提交,标记为修复之前的某个特定提交。最后使用 git rebase --autosquash 自动将修复提交合并到原始提交中,保持提交历史整洁。

  1. 找到需要修复的提交

    git log --oneline
  2. 使用 git commit --fixup 创建修复提交

    git commit --fixup <commit-hash>
  3. 使用 git rebase --autosquash 合并修复提交

    git rebase -i --autosquash <base-commit>

5、rebase合并冲突的解决

在进行 git rebase develop 时,可能会遇到与 develop 分支的代码冲突。此时需要手动解决冲突,确保 feature 分支与 develop 分支同步。

  1. 执行 rebase

    git rebase develop
  2. Git 提示冲突: Git 会提示冲突的文件,并插入冲突标记。

  3. 手动解决冲突: 打开冲突文件,选择保留的内容,或者合并两个分支的更改。

    • pick:保留该提交。

    • reword:修改提交信息,但保留提交内容。

    • edit:暂停 rebase,允许你修改提交内容。

    • squash:将当前提交与上一个提交合并,并保留提交信息。

    • fixup:将当前提交与上一个提交合并,但丢弃当前提交的信息。

    • drop:删除该提交。

  4. 标记冲突已解决

    git add <file>
  5. 继续 rebase

    git rebase --continue
  6. 如果需要放弃 rebase

    git rebase --abort

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

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

相关文章

优化SpringBoot接口:异步处理提升系统吞吐量策略

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

牵手App红娘来助力,打造线上交友“好管家”

线上交友以其便捷性、广泛性和互动性等特点&#xff0c;正逐渐成为单身男女寻找恋爱伴侣的重要渠道。相较于传统相亲模式&#xff0c;线上交友不仅打破了时间和空间的限制&#xff0c;更以其丰富的互动功能和个性化的匹配算法&#xff0c;为用户提供了前所未有的交友体验。在这…

Python数据分析-航空公司客户满意度分析

一、研究背景 随着航空业的快速发展&#xff0c;航空公司之间的竞争愈发激烈。航空公司不再仅仅依靠价格、航班时间等基本要素来吸引客户&#xff0c;而更多地关注如何提升客户体验与满意度。乘客的飞行体验和满意度不仅影响了他们的忠诚度&#xff0c;也对航空公司在市场中的…

IJKPlayer源码分析-整体结构

根据我们的之前的老方法&#xff0c;采用结构化的方式来对IJKPlayer源码做个分析&#xff0c;首先&#xff0c;我们从整体的角度先把IJKPlayer的整体架构和流程讲下&#xff0c;让大家先有个整体的印象。 本地JNI入口 在Android环境下&#xff0c;JVM层载入一个本地so库流程大致…

在数据库产品中如何设计基于列和行的访问控制功能

在数据库产品中设计基于列和行的访问控制功能&#xff08;Column-Level and Row-Level Access Control, CLAC 和 RLAC&#xff09;是一种细粒度的权限管理方式&#xff0c;能够进一步提升数据安全性和灵活性。通过这种控制&#xff0c;数据库可以限制特定用户或角色只能访问某些…

【C++11】包装器:深入解析与实现技巧

C 包装器&#xff1a;深入解析与实现技巧 个人主页 C专栏 目录 引言包装器的定义与用途C 包装器的常见应用场景实现包装器的技巧使用 RAII 实现资源管理案例分析&#xff1a;智能指针模板包装器的应用包装器与设计模式性能优化更多应用案例总结 引言 C 是一门灵活且强大的语…

搜维尔科技:感受、握持、推动、连接和挤压虚拟物体,SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能

感受、握持、推动、连接和挤压虚拟物体&#xff0c;SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能 感受、握持、推动、连接和挤压虚拟物体&#xff0c;SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能

vue后台管理系统从0到1搭建(4)各组件的搭建

文章目录 vue后台管理系统从0到1搭建&#xff08;4&#xff09;各组件的搭建Main.vue 组件的初构 vue后台管理系统从0到1搭建&#xff08;4&#xff09;各组件的搭建 Main.vue 组件的初构 根据我们的效果来看&#xff0c;分析一下&#xff0c;我们把左边的区域分为一个组件&am…

Learn OpenGL In Qt之纹理

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~ 公众号&#xff1a; C学习与探索 | 个人主页&#xff1a; rainInSunny | 个人专栏&#xff1a; Learn OpenGL In Qt 文章目录 纹理纹理坐标纹理环绕方式纹理采样多级渐远纹理 纹理加载和创建加载纹理创建纹理 应用纹理 纹理 纹理坐标…

等保测评在各个行业的应用

等保测评的基本概念和流程 等保测评&#xff0c;即网络安全等级保护测评&#xff0c;是根据国家相关法律法规和标准&#xff0c;对信息系统实施安全等级划分&#xff0c;并针对各等级采取相应安全保护措施的过程。等保测评的流程通常包括信息系统定级、备案、安全建设、等级测评…

Element UI 的 el-tree 组件节点取消双击后的鼠标选中文字状态

要取消 Element UI 的 el-tree 组件节点双击后的鼠标选中文字状态&#xff0c;你可以通过以下几种方式来实现&#xff1a; 使用 CSS 禁止选中&#xff1a; 你可以在全局样式中或者特定的树节点上添加 CSS 规则&#xff0c;来禁止用户选择文本。例如&#xff0c;你可以在 el-tre…

【AWS AMI跨境备份】跨境使用 S3 备份和还原 AMI 镜像

文章目录 一、实验场景二、实验目标三、实验架构图四、涉及到AWS服务五、演示操作5.1 创建EC2实例5.2 创建映像5.3 备份AMI至Global S35.4 复制AMI从Global S3至 CN S35.5 还原AMI5.6 测试AMI 六、参考链接 一、实验场景 将 AWS Global区域的EC2实例备份至 AWS CN区域。 备份…

苍穹外卖学习笔记(二十五)

文章目录 Spring Task介绍应用场景&#xff1a; cron表达式例如&#xff1a; 入门案例 订单状态定时处理处理超时订单处理一直配送中的订单OrderMapper WebSocket介绍HTTP协议和WebSocket协议对比应用场景&#xff1a;入门案例1. 使用websocket.html作为WebSocket客户端2. 导入…

Windows多线程编程 互斥量和临界区使用

Windows 多线程编程允许程序同时运行多个线程&#xff0c;提高程序的并发性和执行效率。多线程编程中的核心概念包括线程的创建、同步、调度、数据共享和竞争条件等。本文详细介绍了 Windows 多线程编程的关键技术点&#xff0c;并解释如何使用线程同步机制来保证线程安全。 1…

2.2.ReactOS系统,系统调用表MainSSDT的实现

2.2.ReactOS系统&#xff0c;系统调用表MainSSDT的实现 2.2.ReactOS系统&#xff0c;系统调用表MainSSDT的实现 文章目录 2.2.ReactOS系统&#xff0c;系统调用表MainSSDT的实现系统调用表MainSSDTSVC_ 宏的定义sysfuncs.h函数的声明 系统调用表MainSSDT ULONG_PTR MainSSDT[…

【FFmpeg系列】:图片处理

引言 FFmpeg 是一个功能强大的多媒体处理工具&#xff0c;广泛应用于音视频处理领域。然而&#xff0c;它的图片处理能力同样不容忽视。本文将深入探讨 FFmpeg 在图片处理方面的高级技巧和优化方法&#xff0c;帮助您更高效地完成图片处理任务。 一、图片格式转换 1.1 基础转…

前端打印功能(vue +springboot)

后端 后端依赖生成pdf的方法pdf转图片使用(用的打印模版是带参数的 ,参数是aaa)总结 前端页面 效果 后端 依赖 依赖 一个是用模版生成对应的pdf,一个是用来将pdf转成图片需要的 <!--打印的--><dependency><groupId>net.sf.jasperreports</groupId>&l…

LCD补充

LCD补充 目录 LCD补充 tip:随着我们学的越来越多&#xff0c;代码长度越来越长&#xff0c;编译越来越慢&#xff0c;有没有超过内存是我们比较关心的一件事&#xff0c;通过以下方法可以实时看到写的代码的大小 回顾LCD LCD补充功能 -- 1、有关在LCD上显示动图&#xff…

前端使用Canvas实现网页电子签名(撤销、下载)

前言&#xff1a;一般在一些后台的流程资料以及审核的场景中会需要电子签名&#xff0c;介绍一种用canvas实现的电子签名&#xff0c;此案例用的是原生js 效果展示&#xff1a; 一、html和css&#xff1a; <div class"divCla2"><canvas id"myCanvas&q…

数据结构-排序算法

基于交换的排序算法 快速排序&#xff1a; 最优情况 最优情况下&#xff0c;每次找到的参考轴把数据分成均匀的两半&#xff0c;最后应该是一个平衡二叉树状态&#xff1b;二叉树的层数&#xff08;logn&#xff09;即为递归需要进行的次数&#xff0c;并且每轮递归结束时&…