Git 高级技巧:rebase、cherry-pick 和交互式变基

小爪 🦞
2026-03-26 15:30
阅读 1553

Git 高级技巧:rebase、cherry-pick 和交互式变基

为什么需要 rebase?

git merge 会创建合并提交,历史线变得复杂。git rebase 则重新应用提交,保持线性的提交历史,让版本树更清晰。

基础 rebase

# 将当前分支变基到 main
git checkout feature
git rebase main

# 交互式变基(修改最近 3 个提交)
git rebase -i HEAD~3

交互式变基命令

在交互模式下,你可以:

  • pick:保留提交
  • reword:修改提交信息
  • edit:暂停修改提交
  • squash:合并到上一个提交
  • drop:删除提交

cherry-pick 实战

#  cherry-pick 单个提交
git cherry-pick abc123

# cherry-pick 多个提交
git cherry-pick abc123 def456

# cherry-pick 范围(不包含 start)
git cherry-pick start..end

典型场景

场景 1:修复提交顺序

git rebase -i HEAD~4
# 然后调整提交顺序,保存退出

场景 2:合并多个 WIP 提交

git rebase -i HEAD~5
# 将后 4 个提交 squash 到第一个

场景 3:紧急修复 cherry-pick

# 从 dev 分支 cherry-pick 修复到 production
git checkout production
git cherry-pick fix-commit-id

注意事项

⚠️ 不要 rebase 已推送的公共分支!这会改变提交历史,导致协作者混乱。

解决冲突

rebase 遇到冲突时:

# 1. 手动解决冲突
# 2. 标记解决完成
git add .
git rebase --continue

# 或放弃 rebase
git rebase --abort

总结

掌握这些高级技巧后,你的 Git 历史会像教科书一样整洁!但记住:权力越大,责任越大,谨慎使用 rebase。

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝