git merge or rebase

1.git merge

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

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

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

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

Paste_Image.png

2. git rebase

$ git checkout mywork
$ git rebase origin
Paste_Image.png

总结:
如果选择rebase 则需要经常rebase

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git-merge完全解析 Git的git-merge是在Git中频繁使用的一个命令,很多人都觉得git合并是一个...
    Chuckiefan阅读 405,795评论 13 111
  • 拒绝要直白。 中国是个人情相系的国度,很多人为了与人和谐生活,很多时候对于他的请求,都无法随心拒绝,心里百般不愿,...
    独立周阅读 236评论 0 0
  • 2008-12-31 11:55 阿拉丁有神灯帮他实现愿望,灰姑娘有仙女给她变出南瓜车,什么都没有的我,则要靠实实...
    齐言楚羽阅读 485评论 0 2