Git rebase

git rebase 是 Git 中一个非常强大的命令,主要用来整理提交历史,让你的提交记录更加整洁、有逻辑。简单来说,它可以**“移动”提交**,把你的修改“重新放到”其他分支的基础上。


它到底有什么用?

✅ 1. 保持提交历史整洁

假设你在 feature 分支开发一段时间,这时候 main 分支也有新的提交,如果你用 merge 合并:

git merge main

就会出现一个“merge commit”,历史记录会变复杂。而用 rebase

git rebase main

你的 feature 分支的提交会“挪到”最新的 main 分支后面,就像你是基于最新 main 开发的,看起来更清晰。


✅ 2. 交互式修改历史(git rebase -i

可以修改提交历史,比如:

  • 合并多个提交(squash)

  • 修改提交信息(reword)

  • 删除提交(drop)

  • 调整提交顺序(reorder)

命令示例:

git rebase -i HEAD~3

表示对最近 3 次提交进行操作。


✅ 3. 配合 pull 避免 merge commit

git pull --rebase

代替 git pull,可以避免自动生成的 merge commit,让历史更线性。


⚠️ 注意事项

  • Rebase 会重写提交历史,所以不要在公共分支上 rebase(尤其是已经推送到远程的分支),容易让别人痛苦。

  • 本地开发分支使用 rebase 整理提交后再 push,是一种推荐做法。


如果你习惯用图形化工具,比如 GitKraken、SourceTree,也能看到 rebase 和 merge 在图上的区别,rebase 的线会很直,merge 会有叉叉。


你平时是怎么管理自己的 Git 提交的?喜欢 rebase 还是 merge?需要我帮你画个图解释一下它俩的区别吗?

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计