美文网首页React Native开发让前端飞
git合并多个commit & 压缩合并

git合并多个commit & 压缩合并

作者: 码工人生 | 来源:发表于2020-05-10 20:41 被阅读0次

    日常开发中,我们为了代码安全起见,经常会做完一点需求就进行一次commit。如果所做的需求比较复杂,可能会产生很多的commit。等需求开发完之后,想往主分支合并,或者让别人进行codeReview,commit次数太多看着就很麻烦,并且作为主分支也不想要这么多commit。所以学会将多个commit合并为一个节点就很有必要。以下将介绍两种方法实现多个commit节点合并为一个节点。比如我想把红框里三次提交合并成一个节点。

    一、压缩提交

    1.jpg

    1.使用git rebase 命令,以下两种都可以

    a. git rebase -i lastCommitID
    注意这里的commitId 是倒数第四次的提交

    git rebase -i   b7d113e6
    

    b. git rebase -i HEAD~3
    3就是从最后一次开始倒数的次数

    2.命令编辑

    a.输入命令 vi ,进行编辑


    WeChat7fd61bf4d7eb38d601da6fc81c2bf588.png

    b.当下面蓝色框为 INSERT 时,要把上面两个红色框 ‘pick’ 改为‘s’,表示第三次提交合并入第二次,第二次提交合并入第一次。
    修改后如图:


    WeChat37aa3aa7a0ba551122340593cda33a05.png
    c.按 ESC 键, 然后按'shift'+':' ,接着按 wq,回车退出。

    3.修改提交记录(这个可修改也可不修改)

    WeChat1e057380fab5d2326cb1fb019bf19410.png

    由于是把后面的提交合并到第一次提交里。所以可以修改第一次提交信息红色区域,改为你想要的提交信息。比如“完成合并多次提交功能”

    至此,将多次commit合并为一次commit完成。再次查看git 记录:

    WeChat01829b03fb4de4d5cf389fb39c8a77cf.png

    二、压缩合并

    比如我们在某个feature分支开发了一个功能,要合并入develop分支时。这个feature分支上有很多提交记录,而develop上并不需要展示某个feature上那么复杂的提交记录。这个时候就要用到压缩合并。
    比如我在feature分支有了三次提交记录


    WeChate118cc70b574c6bf332057c90a90e059.png

    此时我已经feature完成了功能,要合并入develop分支,但为了使develop分支不显示这么多节点,我们要开始以下步骤

    1.使用压缩合并分支的名利

    git merge <branch>  --squash
    

    2. 然后 git add . ,再git commit -m '提交信息'

    至此,我们完成压缩一个分支合并到主分支功能,如图

    WeChata93df4da62daf2cb1f3060c96e425bc6.png

    通过git log -p commitID ,可以看到这次压缩合并的所有提交信息。

    相关文章

      网友评论

        本文标题:git合并多个commit & 压缩合并

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