使用git rebase合并多次提交记录

背景

我们在编写代码的时候,经常为了避免代码丢失,是单次修改后直接commit并push的。这样做就会导致在git里面看到多次commit的记录。
如下如所示:
多次commit记录示例图
但是其实我们的改动在合并到master分支的时候, 别人只要看到一条commit记录就好了。所以我们需要整合多次commit的记录。

方法

  1. 首先确保当前分支是你修改的分支。 如果不是可以使用如下命令切换: git checkout 你的分支名称

  2. 查看当前分支的历史提交日志。命令:git log
    git log示例图
    我们可以看到有2次commit记录,有点冗余。我们需要把这两次commit记录合并成一条。
    注意:在查看log页面,如果需要退出,键盘按q即可。

  3. 合并前2次commit记录。命令:git rebase -i HEAD~2
    git rebase -i HEAD~2后的界面
    上图所示的界面是VIM模式,想要输入按一下insert键或者i键就可以进入输入状态了。

  4. 保留第一次commit的记录,其他commit记录修改pick为s, 然后保存退出。
    操作VIM
    注意:如果需要退出编辑页面,需要按esc键,然后输入:wq回车就会保存退出。

  5. 注释掉不需要的commit记录
    这时候会进入第二个vim页面,这里让我们再次修改commit message的。就是合并后的message。
    跳转后的界面
    注释掉不需要的commit记录
    注意:如果需要退出编辑页面,需要按esc键,然后输入:wq回车就会保存退出。

  6. 成功合并提交记录。
    合并commit记录成功

  7. 同步操作到远程git仓库。命令:git push --force

命令成功示意图
远程分支成功示例图

另外,如果想放弃这次压缩,可以执行命令:git rebase --abort。 注意:如果已经合并成功并推送到远程分支,此命令无效。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值