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?需要我帮你画个图解释一下它俩的区别吗?