在合并分支的时候,默认是有三种选项的,分别是
- 普通的 merge
- squash merge
- rebase merge
普通 Merge
说到合并分支,可能我们最熟悉的操作是这样的:
- 先切换到目标分支:
git checkout master
- 执行命令:
git merge devel
- 删除旧分支(可以在上面一同做):
git branch -D devel
- 提交到远程分支:
git push origin master
假设合并之前的这样的:
我们这么上述操作之后,分支的 commit 历史将会是这样的:
看上去是一条直直的 commit line,我们在 devel 分支中的 commit 也是一个不差得保留在了 master 中。但是很多时候,我们并不需要那么多的 commit,假设你给一个开源项目提交一个 Bug Fixes,然后一个简单的修改因为你的粗心大意 pull request 了十几个 commit 过去,如果作者给你 merge 了,这