git合并分支上的commit到master

标签: git


缘由?

有一次被人问到怎么把一个分支的所有commit按一个commit合并到主分支上,当时一脸蒙B,平时开发都是直接merge,很少考虑到这种问题,于是特意搜索了相关资料。

场景

其实在开发中,我们永远都是保留一个主master分支干静,我们都是会重新拉一个dev分支做开发,遇到BUG就会拉BUG分支解决BUG,但是在分支上做开发和解决BUG不只会有一个提交,而合并到主干上也没有必要让别的开发看到冗余的commit信息,其实别的开发只要需要看到这个分支是解决了什么问题或者开发了什么任务即可。

按普通的提交流程是:

    git checkout master //切换回主分支
    git pull //拉取master代码
    git merge dev //如无冲突就已经合并成功如遇冲突就解决冲突再提交代码

如果想合并分支commit到主分支可以按如下走法:

    git checkout master //切换回主分支
    git pull //拉取master代码
    git merge dev --squash //如遇冲突就解决冲突
    git commit -m "这里是注释"

原理就是--squash会把分支上的所有相对master分支的修改一次性推送到本地,这样就可以解决在master上只会看到一个提交了。
暂时写这么多,其实还有方法也可以做到,流程稍微复杂点,日后更新,哈哈哈。

猜你喜欢

转载自www.cnblogs.com/xwwin/p/9389527.html