当前位置: 首页 > news >正文

git cherry-pick

1. 什么是 cherry-pick?

cherry-pick 是 Git 中的一个命令,用于将某个特定的提交(commit)从一个分支复制到另一个分支。它不会合并整个分支,而是“挑选”某次提交的内容,应用到当前分支。这就像“挑樱桃”一样,只选你想要的那颗提交。


2. 适用场景

  • 你在 dev 分支修复了一个 bug,但此时 master 分支也需要这个修复,而不是整个 dev 的内容。
  • 某个 feature 分支有一项改动,其他分支也需要,但不希望合并 feature 分支的所有提交。
  • 多人协作时,临时将某人的提交迁移到其他分支。

3. 使用方法

基本命令

git cherry-pick <commit-hash>

其中 <commit-hash> 是你想要应用的那个提交的 SHA 值。

示例流程

假如你在 feature 分支有如下提交历史:

A - B - C - D

你现在在 main 分支,想把 C 这个提交应用到 main

git checkout main
git cherry-pick <C的commit-hash>

这样,C 的内容就会被复制到 main 分支,并且会生成一个新的提交(hash不同,但内容一样)。


4. cherry-pick 多个提交

可以一次性选择多个提交:

git cherry-pick <commit1> <commit2> <commit3>

或者选择一个范围:

git cherry-pick <commitA>^..<commitB>

这会把 commitA 到 commitB(包括 commitB,不包括 commitA^)之间的所有提交都“挑”过来。


5. 冲突处理

如果 cherry-pick 的过程中遇到冲突,Git 会提示你解决冲突。解决冲突后,使用:

git add .
git cherry-pick --continue

如果想放弃这次 cherry-pick:

git cherry-pick --abort

6. 注意事项

  • cherry-pick 会生成新的 commit,和原来的 hash 不同,但内容一样。
  • 频繁使用 cherry-pick 可能导致分支历史混乱,建议只在确实需要“单独挑选”时使用。
  • cherry-pick 只能挑选已经提交(commit)的内容,不能挑选未提交的变更。

7. 总结

cherry-pick 是 Git 中非常实用的命令,让你可以灵活地迁移某些特定的改动到其它分支,适用于补丁、bug 修复等场景,但应谨慎使用。

http://www.dtcms.com/a/577474.html

相关文章:

  • AR 眼镜之-普通电话-实现方案
  • 下厨房网站学做蒸包视频可以上传自己做的视频的网站吗
  • IO卡常见问题处理
  • 11_FastMCP 2.x 中文文档之FastMCP高级功能:用户引导详解
  • 门户网站 移动端黄石专业网站建设推广
  • 类的嵌套 、封装
  • (128页PPT)麦肯锡金字塔原理培训思考写作和解决问题的逻辑(附下载方式)
  • Python 类实战:从“函数堆函数”到“客户端对象”,看类如何让 API 请求代码脱胎换骨
  • springboot的单元测试功能有什么用
  • 5昌平区网站建设免费模板网站哪个好
  • 济南网站制作设计公司网站建设属于什么科目
  • 深入解析Kafka的消息模型:如何确保消息不丢失且高效传递
  • 微服务之Nacos(注册中心、配置中心)
  • 导致Resources文件夹的资源在Android打包后丢失的原因
  • Leetcode 46
  • Zabbix 7 概述与配置详解
  • 网站优化体验报告中国创业网
  • 用 FastAPI + Pydantic 打造“可验证、可热载、可覆盖”的配置中心
  • 2025教资面试真题电子版|科目试讲+结构化真题解析|完整PDF
  • 一文了解-大语言模型训练 vs 推理:硬件算力需求数据对比
  • 影刀RPA一键分析用户行为!AI智能画像,转化率提升300%[特殊字符]
  • Spring Cache快速入门
  • 网站底部横条导航代码做网站的怎么挣钱、
  • 【科研绘图系列】R语言绘制散点图(scatter plot)
  • Supabase 概述
  • 【微服务】(3) 服务注册与发现
  • 网站综合查询工具做推文的编辑网站
  • Prometheus实战教程 05 - 告警通知实现 - 邮件 + 钉钉 + 自定义告警模板
  • SELinux 故障排除完全指南:从拒绝访问到快速修复
  • 【Linux】Socket编程预备及UDP