Jorgen's blog Jorgen's blog
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
newland
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

jorgen

Love it, make mistakes, learn, keep grinding.
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
newland
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • newland
  • 测试AI博客生成工具的初体验
  • AI技能与MCP的世纪对决:从插件生态到标准化协议的进化
  • 元旦AI大冒险:从拍照app到科幻创作
  • Git Cherry-Pick:分支合并的精准手术刀
    • 前言
    • 什么是Git Cherry-Pick?
    • 🏗️ 核心应用场景
      • 1. 跨分支紧急修复
      • 2. 功能模块复用
      • 3. 历史提交抢救
    • 💡 实战操作指南
      • 基本使用流程
      • 高级技巧:批量挑选
      • 冲突处理策略
    • ⚠️ 注意事项
    • 🚀 实战案例:多环境热修复
    • 结语
  • Claude Code使用技巧:让AI编程助手成为你的超级副驾
  • Rust:这只螃蟹凭什么让 Linux 内核都为之折腰?
  • 如何在一天内彻底重置你的人生
  • 探索LLM的真正能力:从文本生成到逻辑推理
  • 如何在使用LLM写博客时添加图片
  • AI代理开发指南:从场景到实践
  • 每日追踪GitHub新仓库:5个实用方法
  • 普通人的超能力:如何利用 LLM 在特定领域“弯道超车”
  • 聊聊计算机的“前半生”:从算盘到硅基革命
  • 编程语言简史与 AI 时代的入门指南
  • 利用大语言模型提升英语阅读与口语能力
  • 让 Claude 变身电子工程师:当 AI 开始画电路板
  • Claude 生态全解析:Skills、Prompts、Projects、MCP 与 Subagents 到底怎么选?
  • 构建 Claude Code 技能:把团队经验变成自动加载的插件
  • 当工作失去意义时,未来该何去何从?
  • 未来 10 年最重要的技能:不是编程,而是 Agency
  • AI辅助编程:效率与技能发展的双刃剑
  • newland
Jorgen
2026-01-08
目录

Git Cherry-Pick:分支合并的精准手术刀

# 前言

在团队协作开发中,我们经常遇到这样的场景:🤔
某个功能分支已经开发完成,但突然发现另一个分支也需要其中某个关键提交。这时传统的merge或rebase操作会带来大量无关代码,而git cherry-pick就像一把精准的手术刀,能完美解决这个问题。

提示

核心价值:cherry-pick允许你从任意分支中选取特定提交,将其应用到当前分支,而无需合并整个分支的历史。


# 什么是Git Cherry-Pick?

cherry-pick字面意思是"挑选樱桃",在Git中它就像🍒在果园里精准挑选成熟的果实。这个命令能将单个提交(commit)完整地复制到当前分支,保持原始提交的所有变更内容、作者信息和提交时间。

git cherry-pick <commit-hash>
1

# 🏗️ 核心应用场景

# 1. 跨分支紧急修复

当生产环境发现紧急bug时,通常需要在多个分支间快速同步修复:

# 在hotfix分支修复bug
git commit -m "修复支付接口超时问题"

# 将修复同步到develop分支
git checkout develop
git cherry-pick hotfix/fix-timeout
1
2
3
4
5
6

# 2. 功能模块复用

当多个功能分支需要共享相同代码片段时:

# 在feature-auth分支完成登录逻辑
git commit -m "实现OAuth2.0登录流程"

# 将登录逻辑应用到feature-profile分支
git checkout feature-profile
git cherry-pick feature-auth/a1b2c3d
1
2
3
4
5
6

# 3. 历史提交抢救

误操作删除了重要提交?cherry-pick能帮你从reflog中抢救:

git reflog  # 找到丢失的commit-hash
git cherry-pick <丢失的commit-hash>
1
2

# 💡 实战操作指南

# 基本使用流程

  1. 切换到目标分支
git checkout target-branch
1
  1. 执行挑选操作
git cherry-pick source-branch/commit-hash
1

# 高级技巧:批量挑选

# 挑选多个提交(按时间倒序)
git cherry-pick ^commit1 commit2 commit3

# 生成cherry-pick列表(避免冲突)
git log --reverse --pretty=format:"%h" branchA..branchB | xargs git cherry-pick
1
2
3
4
5

# 冲突处理策略

当遇到冲突时:

# 解决冲突后继续
git add <冲突文件>
git cherry-pick --continue

# 放弃本次挑选
git cherry-pick --abort
1
2
3
4
5
6

# ⚠️ 注意事项

  1. 提交顺序问题
    cherry-pick会保持原始提交的顺序,如果依赖关系错乱可能导致失败。
    建议先画依赖图再操作,别问我怎么知道的

  2. ID一致性陷阱
    挑选后的提交会生成新ID,原始提交仍保留在原分支。

    # 挑选后新提交ID会变
    git log --oneline --graph
    * a1b2c3d (HEAD -> feature-new) 新提交ID
    * 4e5f6g7 原始提交(在其他分支)
    
    1
    2
    3
    4
  3. 权限与署名
    会保留原始作者信息,但会使用当前分支的签名规则。
    如果需要修改作者信息:

    git cherry-pick --author="New Author <email>" <commit-hash>
    
    1

# 🚀 实战案例:多环境热修复

假设场景:生产环境发现支付bug,需要在main和develop分支同时修复:

  1. 在hotfix分支修复并提交:
git checkout -b hotfix/fix-payment
# 修复代码...
git commit -m "修复支付金额计算错误"
1
2
3
  1. 同步到main分支:
git checkout main
git cherry-pick hotfix/fix-payment
git push origin main
1
2
3
  1. 同步到develop分支:
git checkout develop
git cherry-pick hotfix/fix-payment
# 如果develop分支有新提交,可能需要先rebase
1
2
3

# 结语

git cherry-pick就像Git工具箱中的瑞士军刀,在需要精准控制代码变更时发挥奇效。它特别适合:

  • 跨分支紧急修复
  • 功能模块复用
  • 历史提交抢救

使用建议:当需要合并的提交超过3个时,建议考虑rebase或merge,避免造成提交历史碎片化。记住,工具没有绝对好坏,关键在于理解其适用场景。

下次遇到需要"摘取特定果实"的情况时,不妨试试这把精准的手术刀吧!🔪✨

#git#版本控制#分支管理
上次更新: 2026/01/08, 13:53:25
元旦AI大冒险:从拍照app到科幻创作
Claude Code使用技巧:让AI编程助手成为你的超级副驾

← 元旦AI大冒险:从拍照app到科幻创作 Claude Code使用技巧:让AI编程助手成为你的超级副驾→

最近更新
01
LLM
01-30
02
intro
01-30
03
intro
01-30
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jorgen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式