美文网首页
Git之使用命令行合并多次提交

Git之使用命令行合并多次提交

作者: mrwangyong | 来源:发表于2017-05-20 18:58 被阅读358次

    如果有多次提交,可以用Git命令行合并,

    1.先查看当前的提交和commit ID

    git log 
    
    image.png

    如果要退出 直接输入q

    2. 复制要合并前一个的commitID

    记住 这里是前一个 比如 上面的前一个为 避免污染友盟 commitID 为 fca027a42964d78988ec25f06d654114fe76224e

    3. rebase当前的提交

    git rebase -i commitID
    

    比如 这里输入的是 git rebase -i fca027a42964d78988ec25f06d654114fe76224e 立即进入Vim编辑器界面

    4. 然后会进入Vim编辑器,此处应该有vim编辑器速通教程

    Vim分为两种模式,
    命令模式:输入一些控制指令 如撤销.退出.保存.等等
    编辑模式:可以编辑文本;
    默认进入为命令模式,键入i,o,s,a等即可进入编辑模式,按esc可退出编辑模式

    删除

    • x 删除当前字符
    • dd 删除当前行 d(elete)
    • dw 删除当前光标下的词 d(elete)w(ord)

    修改

    • i 在光标当前位置向前插入 i(nsert)
    • I在本行第一个字符前插入
    • a 在光标当前位置向后插入 a(fter)
    • A 在本行末尾插入
    • o 向下插入一行
    • O 向上插入一行
    • :w 保存
      -:q 退出
    • :wq 保存并退出
    • u 撤销上一次修改
    • ctrl + r重做

    5. 修改commit

    image.png

    可以见到
    上方未注释的部分是填写要执行的指令
    而下方注释的部分则是指令的提示说明
    指令部分中由前方的命令名称、commit hashcommit message 组成。

    当前我们只要知道 picksquash 这两个命令即可。
    pick 的意思是要会执行这个 commit
    squash 的意思是这个 commit 会被合并到前一个commit,注意是
    一个
    我们将 c4e858b5 这个 commit 前方的命令改成 squash 或 s,然后输入:wq以保存并退出

    6.最后删除多余的commit记录就好了

    image.png
    输入dd可以删除一行,输入 i.o.s.a等切换到编辑模式(底部有个insert标志),修改文字,完成后esc输入:wq保存即可
    重新git log 一下 发现已经修改完毕了

    注意事项:

    如果这个过程中有操作错误,可以使用 git rebase --abort来撤销修改,回到没有开始操作合并之前的状态。

    相关文章

      网友评论

          本文标题:Git之使用命令行合并多次提交

          本文链接:https://www.haomeiwen.com/subject/phmpxxtx.html