git --- cherry pick

git --- cherry pick

  • [cherry pick](#cherry pick)

cherry pick

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

cherry pick 的作用

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

使用场景

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

基本用法

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

示例

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

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

bash 复制代码
git checkout dev

执行 cherry-pick:

bash 复制代码
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 是一个灵活的工具,适合精准移植某个提交,而不是整个分支的改动。合理使用可以提高开发效率,但滥用可能导致代码历史难以维护
相关推荐
我叫张小白。1 天前
Git 分支管理与团队协作
git
DogDaoDao1 天前
Windows 下 Git 报错:`touch` 无法识别 —— 原因分析与 7 种解决方案(从入门到精通)
windows·git·程序员·npm·powershell·cmd·touch
caicai_xiaobai1 天前
Ubuntu上Git安装步骤
linux·git·ubuntu
come112341 天前
git 区分是 Git 分支还是 worktree 路径名
git
憧憬成为java架构高手的小白1 天前
git多人工作之个人规范使用【ai+个人理解】
git
CVer儿1 天前
git简单操作
git
Andya_net1 天前
Git | Git 核心命令深入解析:从原理到实战
大数据·git·elasticsearch
wh_xia_jun1 天前
给小白的 Maven 命令行执行测试 完整指南
git·maven·intellij-idea
专业白嫖怪1 天前
H3C UniServer R4950 G5 服务器压测实战:13根内存条24小时压力测试全流程
git
我先去打把游戏先1 天前
Ubuntu虚拟机(服务器版本)Git安装教程(附常用命令)——从零开始掌握版本控制
服务器·c语言·c++·git·嵌入式硬件·物联网·ubuntu