## Merge vs Rebase
merge

rebase

- merge 和 rebase 是两种不同的合并方式。
- merge 的log是有分叉的,合并后的commit的父亲是合并的多个分支的commit。
- rebase 则是将修改移动到最后,将log合并为一条。
- merge 的缺点是 log 可能很乱。
- rebase的缺点是丢失了拉出,合并入分支的时间节点。
## Fast forward模式合并
**git merge** 默认为**Fast forward**模式合并,也就是说合并分支时,如果**能用Fast forward模式**,默认就会用这种模式合并,但这种模式下,删除分支后,会**丢掉分支信息**。
> 


## 3-way merge
关闭fast-forward模式,在提交的时候,会创建一个merge的commit信息(可编辑),合并后的分支指向这个commit
```git merge --no-ff branch_name```
