zoukankan      html  css  js  c++  java
  • [Git] git merge之squash

    reference : https://www.cnblogs.com/ungshow/p/3515161.html

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

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

    $ git checkout another
    # modify, commit, modify, commit ...
    $ git checkout master
    $ git merge another
    

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

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

     --squash 选项的含义是:本地文件内容与不使用该选项的合并结果相同,但是不提交、不移动HEAD,因此需要一条额外的commit命令。

    其效果相当于将another分支上的多个commit合并成一个,放在当前分支上,原来的commit历史则没有拿过来。

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

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

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

  • 相关阅读:
    Android性能优化典范
    通过命令行连接oracle数据库/进入sql plus
    eclispe 出现超内存错误
    eclipse 重装了tomcat后配置路径
    dorado listener属性
    dorado问题查询&快捷键重命名
    dorado spring知识补充
    Eclipse导入包的快捷键
    dorado抽取js
    dorado中的creationType选择类型
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/8024740.html
Copyright © 2011-2022 走看看