在日常开发中,经常需要将其他分支(如 B)上的 某几个特定提交 合并到当前分支(如 A),但不希望合并整个分支。这种情况最合适的方式是使用 git cherry-pick。
✅ 适用场景
当前分支是 A
希望从 B 分支拿到部分 commit(例如 c1, c2, c5)
不希望 merge B 分支,不希望带来全部提交
📝 基本步骤
1. 切换到 A 分支
git checkout A
2. 查看 B 分支提交日志
git log B --oneline
示例输出:
abc123 修复登录Bug
def456 优化接口性能
789abc 添加统计功能
🎯 挑选特定提交(最常用)
例如只需要 abc123 和 789abc:
git cherry-pick abc123
git cherry-pick 789abc
📦 批量挑选连续的多个提交
方式一:包含 start 到 end(两者都包含)
git cherry-pick start_commit^..end_commit
方式二:包含两个提交
git cherry-pick start_commit..end_commit
示例:
git cherry-pick abc123^..def456
⚠️ 注意事项
1. cherry-pick 会生成新的提交 hash
它不会保留原分支的提交关系,也不会 merge 整条分支。
2. 发生冲突时处理方式
解决冲突后:
git add .
git cherry-pick --continue
3. 取消当前 cherry-pick
git cherry-pick --abort
评论