删除某个commit,git rebase 最完整的傻子都看得懂的教程

开门见山

1、找到你要删除的commit,比如我要删除的是2eb52d59这个commit

如果你要删除多个,就找时间最早的,或者多操作几次。

在这里插入图片描述
2、输入命令git rebase -i 91dacfef,别眨眼了,这个编码是你要删除的commit的前一个,不是2eb52d59

然后就效果如下
在这里插入图片描述
3、输入i进入编辑模式,将你要删除的commit前面的pick改成drop

这个玩意叫做vi/vim编辑器,详细自己去了解,这里不解释。

4、改完啦?改完就按下esc键,然后输入:wq,保存并退出

冒号不能省,冒号不能省,冒号不能省。

5、提交代码,搞定!

你可以选择直接强制提交git push --force一般情况下别乱用,你用了出问题了别来找我

### 如何使用 Git Rebase 压缩多个提交 当希望清理项目的历史记录,使历史更加简洁明了时,可以利用 `git rebase` 的交互模式来压缩(squash)多个提交。具体过程如下: #### 使用交互式变基命令启动压缩流程 执行带有 `-i` 或者 `--interactive` 参数的 `git rebase` 命令,指定要回溯到的目标提交点之前的一个提交ID或者相对位置,比如近三次提交则可以用 `HEAD~3` 表示[^3]。 ```bash $ git rebase -i HEAD~3 ``` 这将会打开一个文本编辑器,在其中可以看到一系列待处理的提交项列表以及每条前面的操作指令词,默认情况下这些指令都是 `pick`,意味着按照原有顺序保留该次提交。 #### 编辑提交序列以实现压缩效果 为了将几个连续的小改动合并成一次较大的更改,需要修改部分 `pick` 关键字为 `squash` 或简称 `s`,紧跟其后的提交会被折叠进前一条提交里,并允许重新编写组合后的提交信息[^4]。 例如原始日志可能是这样的: ``` pick abcdef0 提交A pick bcdefa1 提交B pick cdefab2 提交C ``` 如果想要把后两个提交合入第一个,则应改为: ``` pick abcdef0 提交A squash bcdefa1 提交B squash cdefab2 提交C ``` 保存文件退出后,Git 将提示输入新的综合性的提交描述文字,完成后即实现了多提交合一的效果。 #### 完成交互式变基操作 完成上述调整之后,继续运行 `git rebase --continue` 来推进整个重写过程直到结束;如果有任何冲突发生,则需解决后再尝试继续。若中途决定放弃当前正在进行中的变基动作,可随时通过 `git rebase --abort` 终止并恢复原状[^1]。 ```bash $ git rebase --continue # or if you want to abort the process $ git rebase --abort ``` 以上就是基于 `git rebase` 实现提交压缩的方法概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值