ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
## Merge vs Rebase merge ![](https://img.kancloud.cn/07/b6/07b6d288a6fe6a8540a08e72a6750994_490x480.png) rebase ![](https://img.kancloud.cn/b0/5d/b05d7f33a0c00eba4af4c1d7b121bd76_440x280.png) - merge 和 rebase 是两种不同的合并方式。 - merge 的log是有分叉的,合并后的commit的父亲是合并的多个分支的commit。 - rebase 则是将修改移动到最后,将log合并为一条。 - merge 的缺点是 log 可能很乱。 - rebase的缺点是丢失了拉出,合并入分支的时间节点。 ## Fast forward模式合并 **git merge** 默认为**Fast forward**模式合并,也就是说合并分支时,如果**能用Fast forward模式**,默认就会用这种模式合并,但这种模式下,删除分支后,会**丢掉分支信息**。 > ![](https://img.kancloud.cn/c7/f4/c7f4a6b86c389773d8940dee7a881690_418x210.png) ![](https://img.kancloud.cn/c7/ce/c7ce574280fc58af06b238524f47cd28_418x197.png) ![](https://img.kancloud.cn/4f/9a/4f9a82d8b4e9b227c603a6e9c219e902_423x222.png) ## 3-way merge 关闭fast-forward模式,在提交的时候,会创建一个merge的commit信息(可编辑),合并后的分支指向这个commit ```git merge --no-ff branch_name``` ![](https://img.kancloud.cn/5e/b5/5eb5080123f1c1857acac61855a01c72_898x238.png)