Git merge --no-ff与--squash

--no-ff指的是强行关闭fast-forward方式。git

fast-forward方式就是当条件容许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种状况若是删除分支,则会丢失分支信息。由于在这个过程当中没有建立commit指针

git merge --squash 是用来把一些没必要要commit进行压缩,好比说,你的feature在开发的时候写的commit很乱,那么咱们合并的时候不但愿把这些历史commit带过来,因而使用--squash进行合并,此时文件已经同合并后同样了,但不移动HEAD,不提交。须要进行一次额外的commit来“总结”一下,而后完成最终的合并。code

总结:
--no-ff:不使用fast-forward方式合并,保留分支的commit历史
--squash:使用squash方式合并,把屡次分支commit历史压缩为一次blog

相关文章
相关标签/搜索