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 是一个灵活的工具,适合精准移植某个提交,而不是整个分支的改动。合理使用可以提高开发效率,但滥用可能导致代码历史难以维护
相关推荐
guwentian13 小时前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
不吃鱼的羊16 小时前
Git识别未修改的文件有修改
git
蓝黑墨水18 小时前
一个git问题的处理
git
互联网中的一颗神经元21 小时前
21 — 额外命令:同时开两个窗口、自动检查哨
git
_道隐_1 天前
git stash save 和 git stash push有什么区别?
git
_道隐_1 天前
git stash如何pop指定的stash change?
git
PC2005-cloud1 天前
Git学习笔记:GitHub Git Data API 完全指南,用 Go 操控 Git 底层对象
笔记·git·学习
Python私教2 天前
AI 并行编码的 Worktree 生命周期:创建、隔离与安全回收
人工智能·git
互联网中的一颗神经元2 天前
16 — 改写历史 rebase:搬家到新楼层,不是合并
git
互联网中的一颗神经元2 天前
19 — 贮藏与清理:stash 是抽屉,gc 是打包箱
git