美文网首页Git
git -- 合并本地多次commit

git -- 合并本地多次commit

作者: 踩坑小分队 | 来源:发表于2020-03-31 18:46 被阅读0次
    场景

    我们在本地开发某一个模块的时候,可能会有多次commit的场景。
    比如在A分支上开发东西,这个时候产品要在已上线版本加紧急需求,上线这个时候可能就得切到别的分支开发了。但是A分支开发的东西可能就需要先提交到本地。
    完成紧急任务之后,又要切到A分支继续开发,开发完成后,就会出现多次commit了,但是这多次的commit其实是一个功能模块,如果一块Push到远端,提交记录可能会看的比较零碎。

    方法一,使用sourTree工具进行操作:

    1、


    image.png

    2、


    image.png
    3、
    image.png
    方法二,命令行 git rebase:

    1、git log 查看所有的git 记录

    commit 7a118515b655f36ecb3b0d18feff9ca1ddf67b23 (HEAD -> develop1)
    Author: yan
    Date:   Tue Mar 31 18:19:43 2020 +0800
    
        add 7
    
    commit a704085efa4488e33b704670851d6fa4ddc84b3a
    Author: yan
    Date:   Tue Mar 31 18:19:26 2020 +0800
    
        add 6
    
    commit 3ac0a1f2f88467e7e76aba21ebd7d7d26502a75e
    Author: yan
    Date:   Tue Mar 31 18:18:10 2020 +0800
    
        add 5
    
    commit d5d40c7d0d983c4e5ca50e8222f31114bcaa1fe9 (origin/master, origin/develop1, master)
    Author: yan
    Date:   Tue Mar 31 17:30:27 2020 +0800
    
        添加3  和  4
    

    我们现在项合并的是 add 7 + add 6 + add 5

    2、git rebase -i commitId
    这里的commitId指的是想要合并的最后一条的下一条记录也就是
    d5d40c7d0d983c4e5ca50e8222f31114bcaa1fe9<添加3 和 4>
    按下q退出git log 查询
    前提条件,本地没有可以提交的东西。不然会报错

    git rebase -i d5d40c7d0d983c4e5ca50e8222f31114bcaa1fe9
    
    image.png
    3、修改关键字
    进入vi模式后,在键盘上敲i键进入insert模式。这时候先看看这里面的东西是什么含义,
    • pick 的意思是要会执行这个 commit
    • squash 的意思是这个 commit 会被合并到前一个commit

    我们这边需要将【add 7】和【add 6】合并到【add 5】中,那就需要修改成如下的:


    image.png

    修改完成后,按esc键,冒号,输入wq进行保存。之后会继续跳转到commit message 的编辑界面:
    可以在这个地方修改commit的message,不修改,默认是这几次的commit message的集合。


    image.png

    4、验证

    git log
    
    image.png image.png

    相关文章

      网友评论

        本文标题:git -- 合并本地多次commit

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