Git 实操:如何使用交互式 Rebase 移除指定提交(真实案例分享)

在日常开发中,有时候我们提交了一些不想保留的记录,比如测试代码、错误的功能提交等。

⚠️ 在操作 4. 强制推送到远程仓库前的注意事项

强制推送(git push --forcegit push -f确实很强大但也危险,因为它会重写远程仓库历史,可能影响他人协作或导致代码丢失。以下是你强制推送前后的关键注意事项:

  1. 确保只有你在改这条分支

    • 如果多人在同一个分支(如 devmain)开发,强推很容易让别人提交丢失。
    • ✅ 建议只对自己的功能分支(如 feature/coupon)强推。
  2. 提前备份当前分支
    万一操作出错,可恢复现场:

    git branch backup/dev
    

本次实操目标:

基于如下提交历史:
提交历史

我们希望:

  • 保留其它三个提交
  • 移除 feat(parseScanCodeQuery): 添加二维码解析函数并更新版本号

操作步骤详解

1. 打开交互式 Rebase 界面

因为要操作最近 4 条提交,所以执行:

git rebase -i HEAD~4

执行后 Git 会打开编辑器,显示类似下面的内容:
git rebase记录


2. 修改提交列表:drop 需要移除的提交

i进入插入模式,找到需要删除的那一行(二维码解析函数那一行),把 pick 改成 drop,像这样:
vim 编辑记录
然后按 Esc,输入 :wq保存并推出,回车。


3. 处理冲突(如果有)

通常删除提交不会有冲突,但如果 Git 报错了,比如有冲突,需要这么处理:

# 先解决冲突
git add .

# 然后继续 rebase
git rebase --continue

如果提示 “no changes”,可以直接继续。


4. 强制推送到远程仓库

因为我们改动了历史记录,所以要强制推送

git push origin dev --force

这样远程分支 dev 上的提交记录也会更新成干净的状态!


总结版命令一览

整体流程就是:

git rebase -i HEAD~4
# 把不想要的 commit 改成 drop
# 按 `Esc`,输入 `:wq`保存并退出
# (如有冲突,解决后 git add . && git rebase --continue)
git push origin dev --force

小知识补充

  • pick:保留这个提交
  • drop:移除这个提交
  • reword:修改提交信息
  • edit:修改提交内容
  • squash:把多个提交压成一个
  • fixup:和 squash 类似但丢弃 commit message

交互式 rebase不仅能删除,还能整理提交、修改历史,是 Git 的一项非常重要的技能!


结语

通过这次实操,我们完成了:

  • 使用 git rebase -i 打开提交编辑器
  • drop 指令删除不需要的提交
  • 强制推送更新远程仓库

掌握这套流程后,再也不用担心历史提交杂乱了!🚀
希望这篇博客对你有帮助,欢迎点赞、收藏或分享给有需要的朋友!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱宇阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值