git merge -ff --no-ff --squash 的区别
2024-09-05 06:50:08
感谢原文作者:futureme
原文链接:https://www.cnblogs.com/taylorluo/articles/10810762.html
git merge #没有参数(默认为–ff)
即默认启用fast-forward
方式进行合并,不会显示 feature,只保留单条分支记录。git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit。
git merge --squash
用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用–squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。
git merge --no-ff
强行关闭fast-forward
方式。可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。
图示说明1
图示说明2
最新文章
- 【Beta】第四次任务发布
- C语言模块化编译介绍
- 简单的内网存活主机ip扫描
- 网页加载图片原理<;转>;
- 第一章 第一个spring boot程序(转载)
- ArrayList 与 LinkedList
- linux常见问题集锦-2
- IT公司100题-16-层遍历二元树
- JS中的控制函数调用:call(),apply()和bind()
- Java实现MySQL在线管理
- thinkphp 自定义标签
- mvc学习总结-使用Ninject和CodeFirst
- ArcGIS多面体(multipatch)解析(一)
- 201521123022 《Java程序设计》 第一周学习总结
- 201521123079《java程序设计》第13周学习总结
- canvas图表(3) - 饼图
- Android ViewPager实现图片标题轮播和点击事件
- Flask知识点一
- hdu4729 树链剖分+二分
- View的相关原理(读书笔记)