git --- cherry pick

ops/2025/4/2 7:53:00/

git --- cherry pick

  • cherry pick

cherry pick

  • Cherry Pick 是 Git 中的一个操作,它允许你选择某个分支的某次(或多次)提交,并将其应用到当前分支,而不会合并整个分支的所有更改。

cherry pick 的作用

  • 只提取某个特定的提交(而不是整个分支的改动)。
    适用于修复 Bug 或移植某个功能,而不想合并整个分支。
    避免不必要的冲突,只引入需要的更改。

使用场景

  • 修复 Bug:如果某个 Bug 在 main 分支修复了,但 dev 分支也需要这个修复,可以直接 cherry-pick 这个提交。
  • 部分功能移植:某个功能在 feature-A 分支开发完成,但只想提取其中几个关键提交到 main 分支。
  • 撤销错误的提交:如果某个提交被误合并到错误的分支,可以用 cherry-pick 把它移到正确的分支 (但是并不能删除错误的提交)

基本用法

git cherry-pick <commit-hash>
## <commit-hash> 是你想要应用的提交的哈希值(如 a1b2c3d)。
示例

示例

  • 查看提交历史,找到要应用的提交:
git log --oneline
# 输出示例:
# a1b2c3d (HEAD -> main) Fix login bug
# e4f5g6h Add new feature

切换到目标分支(如 dev):

git checkout dev

执行 cherry-pick:

git cherry-pick a1b2c3d
# 这样,Fix login bug 这个提交就会被应用到 dev 分支。
选项作用
-n(–no-commit) 只应用更改,但不自动提交
-e(–edit) 在应用提交前允许修改提交信息
-x在提交信息里追加来源提交的哈希(推荐用于追踪来源)
–abort如果发生冲突,放弃 cherry-pick 操作
–continue解决冲突后继续 cherry-pick

注意事项

  • 可能引发冲突:如果目标分支和原提交的上下文不同,可能需要手动解决冲突。
  • 慎用:过度使用 cherry-pick 可能导致提交历史混乱,建议在必要时使用。
  • 与 merge 的区别:merge 合并整个分支的改动,而 cherry-pick 只挑部分提交。
    总结

Summary

  • git cherry-pick 是一个灵活的工具,适合精准移植某个提交,而不是整个分支的改动。合理使用可以提高开发效率,但滥用可能导致代码历史难以维护

http://www.ppmy.cn/ops/171342.html

相关文章

李想官宣开源整车操作系统

2025 年 3 月 27 日&#xff0c;在中关村论坛开幕式暨全体会议上&#xff0c;理想汽车董事长兼 CEO 李想宣布&#xff0c;将对自研车载操作系统理想星环 OS 进行开源&#xff0c;理想星环 OS 将于今年 4 月上线开源社区&#xff0c;理想汽车也因此成为全球第一家将车载操作系统…

详解Nginx 配置:从入门到精通

详解Nginx 配置 一、Nginx 介绍 Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它由俄罗斯的程序设计师 Igor Sysoev 所开发,自 2004 年发布以来,凭借其高性能、低内存消耗、高并发处理能力等特点,迅速在 Web 服务器领域崭露头角。…

【Qt】文件与音视频

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解 QT 中的文件与音视频。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff1a;Q…

Jar包和War包的区别

1. 核心区别 JAR包&#xff08;Java Archive&#xff09; 用途&#xff1a;主要用于封装Java类库、工具或独立应用。包含编译后的.class文件、资源文件和元数据&#xff08;如MANIFEST.MF&#xff09;&#xff0c;可通过java -jar命令直接运行&#xff08;需指定主类&#xff0…

双非一本Java方向,学完感觉Java技术含量不高,考研换方向如何选择?

今天给大家分享的是一位粉丝的提问&#xff0c;双非一本Java方向&#xff0c;学完感觉Java技术含量不高&#xff0c;考研换方向如何选择&#xff1f; 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问&#x…

【实战】解决图片 Hover 抖动问题的完整指南

在开发网站时&#xff0c;很多人都会遇到一个常见问题&#xff1a;鼠标移动到图片上&#xff0c;图片放大&#xff0c;结果发生抖动或闪烁。这个问题往往伴随着后端接口请求、JS 动态追加 DOM 等复杂行为。 本文将深入剖析这个问题的成因&#xff0c;并提供一套彻底的解决方案…

TCP/IP三次握手的过程,为什么要3次?

一&#xff1a;过程 第一次&#xff08;SYN&#xff09;&#xff1a; 客户端发送一个带有SYN标志的TCP报文段给服务器&#xff0c;设置SYN1&#xff0c;并携带初始序列号Seqx&#xff08;随机值&#xff09;&#xff0c;进入SYN_SENT状态。等待服务器相应。 第二次&#xff08…

GitHub上免费学习工具的精选汇总

以下是GitHub上免费学习工具的精选汇总&#xff0c;涵盖编程语言、开发框架、数据科学、面试准备等多个方向&#xff0c;结合工具的功能特点、社区活跃度及适用场景进行分类推荐&#xff1a; 一、编程语言与开发框架 Web Developer Roadmap 简介&#xff1a;为开发者提供全栈学…