yan's blog

Git Rebase

Git rebase 的使用

参考文档:https://git-scm.com/book/en/v2/Git-Branching-Rebasing

为什么要使用 Git rebase?

因为 merge 会使提交历史有很多分叉,不是线性的。

怎么做 Git rebase?

比如现在有一个分支 master,另外从 master 分支分出去一个分支 dev,现在想把 dev 上的内容合并到 master。

git rebase master dev

这个命令代表的意思是:先切换到 dev 分支,然后把 dev 分支上的 commit replay 到 master 分支上,这样 master 分支就包含了 dev 分支上的所有 commit 外加自己的 commit。

这个时候,我们再切换到 master,做一个 merge 操作,就把所有的 commit 记在 master 分支上了,dev 分支也就可以删除了。

git checkout master
git merge dev
git branch -D dev

注意

在实际的开发中,我建议你一直是 replay 只有你自己在做的分支到其他人可能开发的分支。因为如果你把主分支 replay 到你自己的分支,那么其他人在下一次 git pull 的时候就会出现问题。因为你把他们的 commit 删除了,重新 replay 了一遍。