当我们想将一个分支的变更整合进另一个分支,通常有两种做法,那就merge和rebase。那么merge和rebase到底有什么区别呢?
首先,我们先来看下两者的概念:
- merge 合并代码,能够清楚各个记录的来源与时间节点,但是git分支看起来比较混乱;
- rebase 变基,变基后可以得到一个干净的分支,但是对于记录来源不够清晰;
merge命令:
git merge branch_name
通常的执行命令:
git checkout -b new-branch-name
git add .
git commit -m "<your commit message>"
git stash
git merge new-features
git stash pop
rebase命令:
git rebase master
merge VS rebase:
git merge 和 git rebase 都是非常有用的命令。运行 git merge 时,会创建一个单独的合并提交。在本地仓库中工作时,合并提交过多会使提交历史看起来很混乱。避免合并提交的一种方法是改用 git rebase。
git rebase 是一个非常强大的功能,但是如果没有以正确的方式使用也是有风险的。 git rebase 会更改提交历史记录,所以需要谨慎使用。rebase 仅在本地仓库中运行,不要在远程中使用rebase。