在 Goland 中使用 git rebase 合并多次 commit

1,515 阅读2分钟

背景: 在实际工作中, 经常需要开发多个需求, 在不同的分支上频繁切换, 而每次切换都需要 commit 保存, 同一功能往往需要产生非常多个 commit, 代码提交记录也会看起来非常的不干净不舒服。 Git rebase 可以合并多次提交记录成一个commit 记录, 合并之后再 push 到远程则会使得整个代码仓库的提交记录看起来非常的清爽干净。我平常都使用 Goland 进行开发,Goland 中的git 图形化界面能够非常清晰地管理分支。 搜遍全网, 都没有讲解 Goland 中如何使用 Git Rebase, 特此记录一贴.

来 3次 commit

首先,我对一个文件做了3次修改, 并且进行了3次commit。点击 goland 的左下角 Git 图标然后就可以看到所有分支和 commit 记录。

1666536629754.png

bd0326b9750276dee1759fe8b73f8df.png

eab32525d28a719b9bc651ad7765669.png

可以看到这三次 commit 都对同一个地方进行了修改, 我们只需要保留最后一次修改,如果直接 push 到远程则会显示3次 commit 记录, 非常的凌乱。

使用 Git Rebase 合并多次 commit

右键上图的 show git rebase 1 提交图标, 选择 Interactively Rebase From Here...

a58bfe1b5211d23538431a27466bc9b.png

然后进入 git rebase 图形化 界面。可以看到从上到下依次显示了从先到后的commit 记录。

c4269b40436fd9a4daaa355e39fa128.png

点击第二次 commit 记录, 将操作方式设置为 Fixup

1aaca874a2ec1683dd7e733889e9791.png

可以看到第二次提交记录有个箭头指向了第一次提交记录, 这表示对第二次提交记录覆盖掉第一次提交记录。 同理,我们对第三次提交记录选择 Fixup

70eb370ac32d83d80b1967c89754605.png

562c7df23bd655cd766b9ef2b1b840f.png

这样三次提交记录都会压缩成第一次的提交记录, 为了方便以后查看, 我们可以修改第一次提交的 message, 点击 Reword 写上自己方便理解的提交信息

d3fe1d6fa7b51b0b3e35a05105cfe02.png

最后点击 Start Rebasing

1666537129296.png

大功告成

可以看到我们将3次commit 记录合并成一次 commit记录。

1881607f855f009090015c8f13dae92.png