• git rebase之提交合并


    如果我们提交了几次代码,实际上是同一个功能,或者说就是想把多次提交再合并成一次提交,减少提交日志的混乱,可以用git rebase -i xxx,xxx是你想合并的分支的前一个,也就是xxx分支是不参与这次合并。

    注意事项

    1. 建议合并的分支中间没有其他提交,不然有可能有冲突,解决起来非常麻烦

    2. 建议合并分支不要太久远,也是有可能有冲突的问题

    如下有一个仓库,三个提交

    image

    想要合并前两个提交,可以运行

    git rebase -i 5c7f60209fbbf0cfd4138079f2dde824bb45f025
    

    git rebase -i 是从当前分支开始,一直回退到指定分支,如下

    image

    其他的参数如果需要可以自己了解,这里只需要介绍squash,squash是把当前的提交与上一个提交合并,如果多个合并就全部换成s

    把后面提交记录前面的pick改成squash或者缩写s,如下

    image

    保存退出后会直接弹出另一个编辑窗口,就是提交代码commit的时候的编写提交日志的窗口,如下

    image

    重新编写一下日志,保存退出,运行git log查看是否成功

    image

    如何合并不相邻的提交
    不相邻的提交合并理论上也很简单,前提是两次提交最好不要相隔太久,中间最好不要有太多重复修改,同样还是为了避免冲突,因为冲突太多很容易导致代码丢失。
    不相邻的提交合并需要两步:
    第一步,通过git rebase -i xxx同样打开编辑文本,然后调整不相邻的提交日志到一起。也就是把其中的一条剪切然后复制到另一个上一行或者下一行,让其相邻。具体是剪切哪一条提交日志,复制到哪个位置,需要根据提交的内容自己确定,一个原则就是减少冲突。最常见的是把最新的提交,剪切,复制到需要合并的提交的后面,保证它们是一个正常顺序。比如a, b, c, d,a是最早的提交,d是最新的提交,如果合并a和d,那么先把顺序调整为a, d, b, c,不要修改提交日志前面的参数,保存退出
    第二步,就和上面一样了,再运行git rebase -i xxx,把d的参数改为s或者f(f的意思就是不使用对应的提交的日志,保存退出直接完成,不会再次打开日志编辑页面),保存退出即可

  • 相关阅读:
    .net core consul
    numpy
    Cordova各个插件使用介绍系列(七)—$cordovaStatusbar手机状态栏显示
    ionic 的缓存 和局部刷新
    ionic 项目中添加modal的步骤流程
    ionic 项目中创建侧边栏的具体流程分4步简单学会
    Cordova各个插件使用介绍系列(八)—$cordovaCamera筛选手机图库图片并显示
    python-16: time 模块 之一
    python-16:模块 包
    c-3:位运算:位运算基本用法
  • 原文地址:https://www.cnblogs.com/studywithallofyou/p/16481296.html
Copyright © 2020-2023  润新知