Git 分支管理:merge、rebase、cherry-pick 的用法与规范


Git 分支管理:merge、rebase、cherry-pick 的用法与规范

在团队开发和个人项目中,合理管理 Git 分支至关重要。mergerebasecherry-pick 是最常用的三种分支操作命令。本文将介绍它们的基本用法、适用场景及最佳实践规范,帮助大家更高效地协作与维护项目历史。

一、merge:合并分支,保留历史

用法

git checkout master
git merge feature-branch

特点

  • 保留两个分支的所有历史和分叉记录。
  • 产生一个新的合并节点(merge commit)。
  • 合并过程中如有冲突需手动解决。

规范

  • 推荐用于主分支(如 master/main)合并功能分支,确保团队协作时历史可追溯。
  • 合并前建议用 git pull 更新本地主分支,减少冲突概率。
  • 合并完成后,及时删除已合并的功能分支,保持分支简洁。

二、rebase:线性历史,便于追溯

用法

git checkout feature-branch
git rebase master

特点

  • 让分支历史变得线性清晰,没有合并节点。
  • 会改变原有提交的哈希值(本质是“复制”提交)。
  • 有冲突时需逐步解决,并用 git rebase --continue 继续。

规范

  • 适合个人开发或功能分支合并前整理提交历史。
  • 禁止在公共分支(已经推送到远程、多人协作)上 rebase,避免历史混乱。
  • rebase 前建议用 git fetch 拉取最新远程主分支,保证基础是最新的。

三、cherry-pick:选择性引入提交

用法

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

特点

  • 只将指定的某个或几个提交复制到当前分支。
  • 常用于 bug 修复、补丁快速应用等场景。
  • 会生成新的提交哈希。

规范

  • 用于跨分支迁移特定提交,避免引入不相关更改。
  • cherry-pick 时要仔细核对依赖关系,避免遗漏依赖或引入冲突。
  • 操作前建议先在本地分支测试验证。

四、最佳实践建议

  1. 团队协作优先使用 merge,保留完整历史,便于回溯和代码审查。
  2. 个人开发或分支整理时用 rebase,让提交历史更干净、易读。
  3. 紧急修复或补丁场景用 cherry-pick,高效迁移特定更改。
  4. 养成良好习惯:合并和变基前同步远程分支、及时清理无用分支、操作前做好备份。

五、总结

  • merge:合并分支,保留历史,推荐用于主干集成。
  • rebase:整理历史,适合个人开发,避免公共分支操作。
  • cherry-pick:挑选提交,适合补丁和紧急修复。

了解并规范使用这三种操作,可以让你的 Git 分支管理更加高效和有序。如果你有更多关于 Git 的疑问,欢迎留言交流!


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

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

相关文章

VR全景制作方法都有哪些?需要注意什么?

VR全景制作是将线下实景场景转化为具有沉浸式体验的全景图像的相关技术流程。通过图像处理和软件拼接等手段及技术&#xff0c;可以制作出VR全景图。后面&#xff0c;我们科普详细的VR全景制作方法指南&#xff0c;顺便介绍众趣科技在相关领域提供的支持方案。 选定拍摄地点与准…

计算机系统结构1-3章节 期末背诵内容

Amdahl定律: 加快某部件执行速度所能获得的系统性能加速比&#xff0c;受限于该部件的执行时间占系统中总执行时间的百分比。 加速比依赖于: 可改进比例&#xff1a;在改进前的系统中&#xff0c;可改进部分的执行时间在总的执行时间中所占的比例。 部件加速比&#xff1a;可改…

JS实现直接下载PDF文件

pdf文件通过a标签直接下载会打开页面&#xff0c;所以&#xff0c;请求该文件的blob文件流数据&#xff0c;再通过window.URL.createObjectURL转成链接&#xff0c;就可以直接下载了。 只需要替换url和文件名称就行&#xff0c;文件名的后缀记得要写上pdf&#xff0c;不然会变成…

深度解析Pytest中Fixture机制与实战案例

一、为什么我们需要Fixture&#xff1f; 在某次金融系统重构项目中&#xff0c;我们的测试团队曾遇到这样的困境&#xff1a;随着测试用例增长到500&#xff0c;使用unittest框架编写的测试代码出现了严重的维护问题——setup方法臃肿不堪&#xff0c;测试数据混乱&#xff0c…

文档结构化专家:数字化转型的核心力量

文档结构化专家:定义、职责与行业应用的全方位解析 一、文档结构化的定义与核心价值 文档结构化是将非结构化或半结构化文档(如文本、图像、表格)转换为计算机可处理的规范化数据形式的过程。其核心在于通过语义解析、信息单元划分和标准化格式(如XML/JSON),实现信息的…

Linux系统管理与编程16番外篇:PXE自动化安装部署OpenEuler24.03LTS

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 Preboot Execution Environment 本机服务器操作系统&#xff1a;CentOS7.9.2207 目标服务器安装系统&#xff1a;openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso 虚拟机&#xff1…

Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破

Enhanced RTMP H.265&#xff08;HEVC&#xff09;技术规格解析&#xff1a;流媒体协议的新突破 “每一帧画面都是时间的映射&#xff0c;压缩之后的灵魂&#xff0c;依然能栩栩如生。” 随着流媒体技术的快速发展&#xff0c;视频编码标准不断推陈出新。H.264/AVC虽然已经成为…

Visual Studio Code 改成中文模式(汉化)

1、打开工具软件&#xff08;双击打开&#xff09; 2、软件左边图标点开 3、在搜索框&#xff0c;搜索 chinese 出现的第一个 就是简体中文 4、点击第一个简体中文&#xff0c;右边会出来基本信息 点击 install 就可以安装了&#xff08;记得联网&#xff09;。 5、安装完右…

Linux--初识文件系统fd

01. C/系统调用文件操作 C/系统调用文件操作 02. 文件系统(ext2)结构 Linux ext2文件系统&#xff0c;上图为磁盘文件系统图&#xff08;内核内存映像肯定有所不同&#xff09;&#xff0c;磁盘是典型的块设备&#xff0c;硬盘分区被划分为一个个的block。一个块的大小(有1MB,…

算法中的数学:欧拉函数

1.相关定义 互质&#xff1a;a与b的最大公约数为1 欧拉函数&#xff1a;在1~n中&#xff0c;与n互质的数的个数就是欧拉函数的值 eg&#xff1a; n1时&#xff0c;欧拉函数的值为1&#xff0c;因为1和1是互质的 n2是&#xff0c;值为2&#xff0c;因为1和2都是互质的 积性函数&…

BaseDao指南

1. BaseDao类 import java.sql.*;/*** 通用的工具类 ,负责连接数据&#xff0c; 执行增删改查的通用方法*/ public class BaseDao {private Connection connection;private PreparedStatement pstm;private ResultSet rs;/*** 建立数据库连接** return*/public Boolean getCon…

SpringBoot JAR 启动原理

文章目录 版本概述JAR 包结构MANIFEST.MF 描述文件JarLauncherArchive 接口launch 方法Handlers.register() 方法getClassPathUrls 方法createClassLoader 方法 时序图参考 版本 Java 17SpringBoot 3.2.4 概述 JAR 启动原理可以简单理解为“java -jar的启动原理” SpringBo…

YOLO11解决方案之速度估算探索

概述 Ultralytics提供了一系列的解决方案&#xff0c;利用YOLO11解决现实世界的问题&#xff0c;包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 YOLO速度估算结合物体检测和跟踪技术&#xff0c;使用YOLO11 模型检测每帧中的物体&#xf…

初识C++:模版

本篇博客主要讲解C模版的相关内容。 目录 1.泛型编程 2.函数模板 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版的实例化 1.隐式实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 2. 显式实例化&#xff1a;在函数名后的<>中指定模…

人工智能100问☞第27问:神经网络与贝叶斯网络的关系?

神经网络与贝叶斯网络是两种互补的智能模型:神经网络通过多层非线性变换从数据中学习复杂模式,擅长大规模特征提取和预测,而贝叶斯网络基于概率推理建模变量间的条件依赖关系,擅长处理不确定性和因果推断。两者的融合(如贝叶斯神经网络)结合了深度学习的表征能力与概率建…

【node.js】入门基础

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js简介1.1 Node.js的核心特点1.2 Node.js适用场景 2. 第一个Node.js程序2.1 创建并运行Hello World2.2 创建简单的HTTP服务器 3. Node.js核心概念3.1 模块系统3.1.1 创建和导出模块3.1.2 导入和使用模…

百度飞桨PaddleOCR 3.0开源发布 OCR精度跃升13%

百度飞桨 PaddleOCR 3.0 开源发布 2025 年 5 月 20 日&#xff0c;百度飞桨团队正式发布了 PaddleOCR 3.0 版本&#xff0c;并将其开源。这一新版本在文字识别精度、多语种支持、手写体识别以及高精度文档解析等方面取得了显著进展&#xff0c;进一步提升了 PaddleOCR 在 OCR …

Android 14 Binderized HAL开发实战指南(AIDL版)

Android 14 Binderized HAL开发实战指南&#xff08;AIDL版&#xff09; 环境要求 Android 14源码编译环境AOSP android-14.0.0_r7分支Soong build系统Java 17 & NDK r25c 项目结构 hardware/interfaces/myservice/ ├── 1.0 │ ├── IMyHalService.aidl # AID…

第九天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 创造美好的代价是努力&#xff0c;失望以及毅力&#xff0c;首先是痛苦&#xff0c;然后才是欢乐。 时间是快的&#xff0c;看怎么利用&#xff0c;安排好一切事情&#xff0c;才能从容面对…

交安安全员:交通工程安全领域的关键角色

在交通工程这个庞大而复杂的领域中&#xff0c;交安安全员扮演着举足轻重的角色&#xff0c;他们是安全的捍卫者&#xff0c;是交通工程顺利推进的重要保障。​ 交安安全员&#xff0c;专门从事公路水运工程施工企业安全生产管理工作。他们的专业身份由交通运输部门颁发的交安…