commit 合并
在开发过程中,可能会出现多个 commit 所涉及的逻辑都是同一个功能模块,此时,会导致 log tree 非常的混乱,不美观,因此,我们可以将多个 commit 进行合并,变成一条,这样,也使得 log tree 会更加的简洁。
首先,先确定的是,我们合并 commit 使用的是 rebase 命令。
command line
首先,找到要操作的 commit 的 前一条的 sha1,然后执行
git rebase -i sha1
执行完后,会出现指定 commit 后所有的 commit,然后根据需要将对应的 commit 的操作改为需要的即可。
在这里,我们分别描述一下这些操作哪些是有用的,以及该如何选择。
- pick:保留;
- reword:保留,但是要修改 commit log;
- edit:保留,但是会暂停 rebase 操作,让你修改内容,不止是log;
- squash:保留,但是会将该 commit 和上一条进行合并,且 commit log 也一起合并了;
- fixup:保留,但是会将该 commit 和上一条进行合并,但是只保留上一个 commit log;
- exec:执行 shell 命令;
- drop:移除该 commit。
一般,我们在使用过程中,使用 pick 和 squash 即可。
idea
这里,假设,我们要把1和2进行合并。
首先,我们复制最后一个 commit 的序列号。
然后点击 vsc - git - rebase
将复制的sha1号复制到下图所示位置中,即可开启 rebase 的合并图形界面。
将需要的 commit 操作改为pick,需要和其上面分支合并到改成 squash 即可。
最后,点击 rebase 后,会让我们输入 commit log,根据世界输入即可。
在全部合并结束后,需要使用 git push -f
进行强制提交即可。
文章在公众号「iceWang」第一手更新,有兴趣的朋友可以关注公众号,第一时间看到笔者分享的各项知识点,谢谢!笔芯!