背景: 在实际工作中, 经常需要开发多个需求, 在不同的分支上频繁切换, 而每次切换都需要 commit 保存, 同一功能往往需要产生非常多个 commit, 代码提交记录也会看起来非常的不干净不舒服。 Git rebase 可以合并多次提交记录成一个commit 记录, 合并之后再 push 到远程则会使得整个代码仓库的提交记录看起来非常的清爽干净。我平常都使用 Goland 进行开发,Goland 中的git 图形化界面能够非常清晰地管理分支。 搜遍全网, 都没有讲解 Goland 中如何使用 Git Rebase, 特此记录一贴.
来 3次 commit
首先,我对一个文件做了3次修改, 并且进行了3次commit。点击 goland 的左下角 Git 图标然后就可以看到所有分支和 commit 记录。
可以看到这三次 commit 都对同一个地方进行了修改, 我们只需要保留最后一次修改,如果直接 push 到远程则会显示3次 commit 记录, 非常的凌乱。
使用 Git Rebase 合并多次 commit
右键上图的 show git rebase 1 提交图标, 选择 Interactively Rebase From Here...
然后进入 git rebase 图形化 界面。可以看到从上到下依次显示了从先到后的commit 记录。
点击第二次 commit 记录, 将操作方式设置为 Fixup
可以看到第二次提交记录有个箭头指向了第一次提交记录, 这表示对第二次提交记录覆盖掉第一次提交记录。 同理,我们对第三次提交记录选择 Fixup
这样三次提交记录都会压缩成第一次的提交记录, 为了方便以后查看, 我们可以修改第一次提交的 message, 点击 Reword 写上自己方便理解的提交信息
最后点击 Start Rebasing
大功告成
可以看到我们将3次commit 记录合并成一次 commit记录。