Git-使用Rebase合并分支

commit 合并

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


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

command line

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

git rebase -i sha1


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


![image.png](https://img-blog.csdnimg.cn/img_convert/25c4a0a90afa938253ef280cbe178275.png#align=left&display=inline&height=349&margin=[object Object]&name=image.png&originHeight=349&originWidth=772&size=29529&status=done&style=none&width=772)
在这里,我们分别描述一下这些操作哪些是有用的,以及该如何选择。

  • 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」第一手更新,有兴趣的朋友可以关注公众号,第一时间看到笔者分享的各项知识点,谢谢!笔芯!

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页