看CM源码时,发现历史记录里有很多squash,于是google了解了一下。

Git相对于CVS和SVN的一大好处就是merge非常方便,只要指出branch的名字就好了,如:

1
2
3
4
5
$ git merge another
$ git checkout another
# modify, commit, modify, commit ...
$ git checkout master
$ git merge another

但是,操作方便并不意味着这样操作就是合理的,在某些情况下,我们应该优先选择使用--squash选项,如下:

1
2
$ git merge --squash another
$ git commit -m "message here"

--squash 选项的含义是:本地文件内容与不使用该选项的合并结果相同,但是不提交、不移动HEAD,因此需要一条额外的commit命令。其效果相当于将another分支上的多个commit合并成一个,放在当前分支上,原来的commit历史则没有拿过来。

Note:

判断是否使用--squash选项最根本的标准是,待合并分支上的历史是否有意义。

如果在开发分支上提交非常随意,甚至写成微博体,那么一定要使用--squash选项。版本历史记录的应该是代码的发展,而不是开发者在编码时的活动。

只有在开发分支上每个commit都有其独自存在的意义,并且能够编译通过的情况下(能够通过测试就更完美了),才应该选择缺省的合并方式来保留commit历史。

这里是原文

git merge之squash的更多相关文章

  1. [Git] git merge之squash

    reference : https://www.cnblogs.com/ungshow/p/3515161.html 看CM源码时,发现历史记录里有很多squash,于是google了解了一下. Gi ...

  2. git rebase vs git merge详解

    https://medium.com/@porteneuve/getting-solid-at-git-rebase-vs-merge-4fa1a48c53aa#.std3ddz0g 请参考另外一篇文 ...

  3. 聊下git merge --squash

    你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里. 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录.而这些commit是无需在rele ...

  4. git merge –squash介绍

    Git相对于CVS和SVN的一大好处就是merge非常方便,只要指出branch的名字就好了,如: $ git merge another $ git checkout another # modif ...

  5. Git的fast forward和no fast forward和 three way merge 以及squash(聚合)

    github上上传了版本库https://github.com/ChuckGitMerge   包括merge和rebase 没时间画图,貌似也不太会用画图工具,先写了一个文字版本的 更新:2015年 ...

  6. [转] git merge 将多个commit合并为一条之--squash 选项

    [FROM] https://blog.csdn.net/themagickeyjianan/article/details/80333645 1.一般的做法(直接git merge) Git相对于C ...

  7. git merge的参数--squash的用处

    本地分支处理问题的过程中一般都是commit在本地分支,当验证完毕后就需要merge到baseline上. 在不懂merge的--squash这个参数前,我一般是这么操作的: 1.在本地分支" ...

  8. git merge --squash 选项合并commit操作实例

     参考: [转] git merge 将多个commit合并为一条之--squash 选项 git checkout master git pull origin master # 本地先拉取最新的m ...

  9. git merge 将多个commit合并为一条之--squash 选项

    转自: https://blog.csdn.net/themagickeyjianan/article/details/80333645 改进版本:合并多个提交为一条(git merge --squa ...

随机推荐

  1. Jenkins Git 中文乱码问题解决

    解决方法: x:\Jenkins\jenkins.xml 新增蓝色粗体标记参数(-Dfile.encoding=utf-8),然后重启Jenkins服务,完毕! <arguments>-X ...

  2. 接入多家ERP厂商,美团点评餐饮高速路开启

    前段时间美团点评CEO王兴所提出的中国互联网进入下半场观点引发了互联网从业人士以及网友们的热议.当时王兴提出,当前国内外所有的互联网公司包括美团点评在内都还远没有做好整个产业链的服务,美团点评也只做了 ...

  3. NSIS总结1——以管理权限运行

    在Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 到第一个Section之间插入一行代码 RequestExecutionLevel admin ...

  4. Android Error Message

    JAVA_HOME error. Add environment variable ANDROID_STUDIO, which is the same as %JAVA_HOME%, but one ...

  5. python解析json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 引用 import json 编码:把一个Python对象编码转换成Json字符串 json.dumps ...

  6. Unity3D编程学习分享

    学习地址:http://www.ixueyun.com/lessons/detail-lessonId-692.html 一.课程概述: 以前大部分3D游戏出现在pc和ps.XBox等专业游戏主机上, ...

  7. J2EE Web开发入门—通过action是以传统方式返回JSON数据

    关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...

  8. Jmeter报告优化之New XSL stylesheet

    Jmeter默认的报告展示的信息比较少,如果出错了,不是很方便定位问题.由Jmeter默认报告优化这篇文章可知,其实由.jtl格式转换为.html格式的报告过程中,style文件起了很关键的作用.下面 ...

  9. (ETW) Event Tracing for Windows 入门 (含pdf下载)

    内容提纲 • ETW 介绍 • ETW 使用 • ETW 监控本机Demo • ETW 监控远程机器的思路 • 底层类库:EventSource 介绍 • 底层类库:TraceEvent 介绍 ETW ...

  10. AngularJS datepicker 和 datatimepicker

    本文内容 项目结构 AngularJS datepicker AngularJS+jQueryUI datetimepicker 本文介绍 AngualrJS datetimepicker 控件.说明 ...