git rebase -i HEAD~3合并多个提交为一个提交
2020-12-04 17:42 加个小鸡腿 阅读(9554) 评论(0) 编辑 收藏 举报场景:新功能在本地的dev_feat分支开发过程中,提交了多次,生成了多个commit id,开发测试完成后将新功能合并到dev分支上,但是不想要这些提交记录,那么可以将多个commitid合并成一个,再merge或者push到dev分支上。
比如git log 看到以下三个提交:
前面说过 commit 是为了防止意外丢失代码,但是在推到远端之前,最好把一次开发的 commit 合并成一个,避免污染远端的 git commit message
前面说过 commit 是为了防止意外丢失代码,但是在推到远端之前,最好把一次开发的 commit 合并成一个,避免污染远端的 git commit message
因为这个例子中有3个 commit,所以执行 git rebase -i HEAD~3
然后就会看到一个 vim 界面 (不熟悉 vim 基础操作的读者请自行查阅搜索)
记住不要动最上面的那行,把下面几行开头的 pick 换成 s , 然后保存
这时会显示另一个 vim 界面
删除所有内容( #开头的可以忽略),然后写一句简短、准确的句子作为这次开发的 commit message,如
然后保存
如果成功了就能看见这么一些文字
最后使用 git logl 确认所有这次开发中的 commit message 都被压缩成了一个
(这边只介绍了 git rebase的最简单直接的用法,有兴趣的读者可以去阅读官方文档,了解更详细、高级的用法,如第一次vim界面里使用 f 替代 s 有时候更方便)
参考: