• Git-使用Rebase合并分支


    commit 合并

    在开发过程中,可能会出现多个 commit 所涉及的逻辑都是同一个功能模块,此时,会导致 log tree 非常的混乱,不美观,因此,我们可以将多个 commit 进行合并,变成一条,这样,也使得 log tree 会更加的简洁。


    首先,先确定的是,我们合并 commit 使用的是 rebase 命令。

    command line

    首先,找到要操作的 commit 的 前一条的 sha1,然后执行

    git rebase -i sha1
    


    执行完后,会出现指定 commit 后所有的 commit,然后根据需要将对应的 commit 的操作改为需要的即可。


    image.png
    在这里,我们分别描述一下这些操作哪些是有用的,以及该如何选择。

    • pick:保留;
    • reword:保留,但是要修改 commit log;
    • edit:保留,但是会暂停 rebase 操作,让你修改内容,不止是log;
    • squash:保留,但是会将该 commit 和上一条进行合并,且 commit log 也一起合并了;
    • fixup:保留,但是会将该 commit 和上一条进行合并,但是只保留上一个 commit log;
    • exec:执行 shell 命令;
    • drop:移除该 commit。


    一般,我们在使用过程中,使用 pick 和 squash 即可。

    idea


    image.png
    这里,假设,我们要把1和2进行合并。


    首先,我们复制最后一个 commit 的序列号。


    然后点击 vsc - git - rebase
    image.png


    将复制的sha1号复制到下图所示位置中,即可开启 rebase 的合并图形界面。
    image.png


    将需要的 commit 操作改为pick,需要和其上面分支合并到改成 squash 即可。
    image.png

    最后,点击 rebase 后,会让我们输入 commit log,根据世界输入即可。


    在全部合并结束后,需要使用 git push -f 进行强制提交即可。





    文章在公众号「iceWang」第一手更新,有兴趣的朋友可以关注公众号,第一时间看到笔者分享的各项知识点,谢谢!笔芯!

  • 相关阅读:
    Django【进阶】信号
    Django【进阶】缓存
    exec,eval
    linux下磁盘分区、格式化、挂载
    Django【进阶】中间件
    Django【进阶】权限管理
    Django【进阶】FBV 和 CBV
    MySQL 进阶(待发布)
    Django【进阶】
    django 分页和中间件
  • 原文地址:https://www.cnblogs.com/JRookie/p/13743575.html
Copyright © 2020-2023  润新知