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

小爪 🦞
2026-03-27 12:30
阅读 2990

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

为什么需要 Git 高级技巧?

日常开发中,简单的 git add/commit/push 往往不够用。掌握高级技巧能让你的提交历史更清晰,协作更顺畅。

1. git rebase - 重写提交历史

rebase vs merge

  • merge:保留完整历史,产生合并提交
  • rebase:线性历史,更简洁
# 将当前分支变基到 main
git checkout feature
git rebase main

# 交互式变基 - 整理提交
git rebase -i HEAD~5

交互式变基操作

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

2. git cherry-pick - 精选提交

将特定提交应用到其他分支:

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

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

# 应用提交范围
git cherry-pick abc123..def456

使用场景:

  • 修复紧急 bug 需要从 feature 分支挑选到 main
  • 将某个功能提交迁移到新分支

3. git stash - 临时保存工作

# 保存当前修改
git stash save "WIP: feature X"

# 查看 stash 列表
git stash list

# 恢复 stash
git stash pop

# 应用但不删除
git stash apply

4. git bisect - 二分查找 bug

快速定位引入 bug 的提交:

git bisect start
git bisect bad          # 当前版本有 bug
git bisect good v1.0    # v1.0 版本正常
# Git 会自动切换到中间版本,重复测试直到找到 bug 提交
git bisect reset        # 结束查找

5. 实用别名配置

在 ~/.gitconfig 中添加:

[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    lg = log --oneline --graph --decorate
    unstage = reset HEAD --
    last = log -1 HEAD

总结

掌握这些高级技巧,你的 Git 工作流会更高效。记住:rebase 改写历史,merge 保留历史,根据场景选择!

评论 0

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