
git rebase 和git merge 做的事其实是一样的。它们都被设计来将一个分支的更改并入另一个分支,只不过方式有些不同。
merge
命令示例
git checkout feature
git merge master
这样feature 分支中新的合并提交(merge commit)将两个分支的历史连在了一起
Merge 好在它是一个安全的操作。现有的分支不会被更改
每次合并上游更改时 feature 分支都会引入一个外来的合并提交。如果上游分支 非常活跃的话,这或多或少会污染你的分支历史
Rebase
命令示例
git checkout feature
git rebase master
它会把整个 feature 分支移动到 master 分支的后面,有效地把所有 master 分支上新的提交并入过来
但是,rebase 为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交。
优点