- 变基和三方合并整合的最终结果指向的快照始终是一样的, 只是提交历史不同
- 变基是将一系列提交按照原有次序依次应用到另一分支上, 而三方合并是把最终结果合在一起
- 变基使得提交历史更加简洁
- 注意:不要对在你的仓库外有副本的分支执行变基
# 将当前分支变基到 base_branch
git rebase base_branch
# 将 topic_branch 变基到 base_branch
# 等同于 git checkout topic_branch && git rebase base_branch
git rebase base_branch topic_branch
- 交互式变基的命令
- pick/p:使用提交
- reword/r:使用提交,但是修改日志信息
- edit/e:标记一个提交需要修改
- squash/s:将当前提交与前一个提交合并
- fixup/f:将当前提交与前一个提交合并,并丢弃日志信息
- exec/x:使用 shell 运行剩下的命令行
- drop/d:删除提交
# 放弃修改
git rebase --abort
# 重写从初次提交到达 commit 的所有历史
git rebase -i --root <commit>