likes
comments
collection
share

Git 操作篇:合并多个commit 的高级技巧

作者站长头像
站长
· 阅读数 34

前言

在我们的日常项目开发中,git commit -m 无疑是使用最频繁的指令,这也造成了大量的commit 在我们的分支上。这样常常会带来分支过长、版本过多的问题。

正文

想要解决这个问题,我们通常会对commit 进行合并。

当我们发现两个commit 或多个commit 存在很强的关联性、并且几个commit 加起来也可以成为一个完整的描述的时候,就可以对这些commit 进行合并。

我们先来看看传统的做法,使用git rebase -i 来将前几个commit 进行合并。

实操

先用git log 查看一下历史。

Git 操作篇:合并多个commit 的高级技巧

比如这里有4 条commit 记录,我们想把前两条合并。

我们应该复制第三条commit 的id(从上至下),然后使用命令git rebase -i id(44c29...)

这次就会进入编辑commit 界面

Git 操作篇:合并多个commit 的高级技巧

上方是选中的两次commit ,下方是各种操作的指令,按i 进行编辑模式。 这里我们需要将红色区域的第二个pick 改为 s,意为向上保存

Git 操作篇:合并多个commit 的高级技巧

按下 ESC 键退出编辑模式,按下 :wq 保存退出,我们的commit 就算合并好了,进入预览界面。此时再次保存退出就好了。

Git 操作篇:合并多个commit 的高级技巧

到这步就将两次commit 合并成功了!

但每次合并都去git log -> git rebase -i 有些太过繁琐,于是我们今天的主角就来了!

配置 .zshrc

打开终端,在根目录下打开 .zshrc 文件,可以使用vscode 打开

Git 操作篇:合并多个commit 的高级技巧

只需要在文件的空白处输入这行代码

alias gi='_gi() { git rebase -i "HEAD~$1" };_gi'

Git 操作篇:合并多个commit 的高级技巧

再使用终端输入 source .zshrc 使其生效。

Git 操作篇:合并多个commit 的高级技巧

这个时候我们就可以使用 gi 来代替git rebase -i ,使用数字 n 说明是前几个commit.

比如 gi 2 来合并前两次commit。

Git 操作篇:合并多个commit 的高级技巧

完结

看到这,如果觉得本文有帮助到您,希望能留下一个大大的赞👍,感谢~

转载自:https://juejin.cn/post/7168840908434063368
评论
请登录