git使用rebase删除某次提交的问题

 更新时间:2025年09月10日 09:42:49   作者:java叶新东老师  
文章介绍了Git删除特定commit的两种方法:通过`git rebase -i HEAD~n`交互式删除最近提交,需修改操作为`drop`并强制推送到远程;或使用`git rebase --abort`撤销操作,同时提醒处理空提交时需检查暂存区文件

git删除某次commit记录

在Git中,要删除某次commit记录有几种不同的实现方法:

方法一:使用git rebase命令和~标记

该方法适用于删除最近的几次commit记录。

首先,使用以下命令查看你需要删除的commit的记录

git log

找到你要删除的commit的哈希值(commit ID)。

运行以下命令来使用git rebase命令删除commit记录(假设删除最近的一次commit)。

git rebase -i HEAD~1

这将打开一个交互式的rebase窗口。找到要删除的commit记录所在的行,将其前面的pick改为drop。

pick abc1234 commit message 1
drop def5678 commit message 2 (to be deleted)

保存并关闭文件。

Git将执行rebase操作并删除你在步骤3中指定的commit记录。

这里出现了一个问题,看一下错误

$ git rebase -i HEAD~1
interactive rebase in progress; onto 52784b2
Last commands done (2 commands done):
   pick abc1234 commit message 1
   drop def5678 commit message 2 (to be deleted)
Next commands to do (2 remaining commands):
   drop 46b66b5 #1000049091 xx1
   pick 2df1056 #1000027181 xxx2
You are currently rebasing branch 'feature/dubhe-pay-platform-2.12.3-bak' on '52784b2'.

nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'
Could not apply c600123... #1000046509 门店标记二期需求

大致意思是 有一些提交记录中,没有任何的文件变动,问我们要不要保留这些空(无文件改动)的提交,按需选择即可,我选择的是

# 跳过当前无法自动合并的提交,并继续处理后续的提交
git cherry-pick --skip

看下暂存区是否有未添加的文件,如果有,使用以下命令添加到暂存区,并提交到本地仓库

git add .
git commit -m "rebase"

然后告诉git,已经处理完rebase了

git rebase --continue

最后强制推送到远程仓库即可, 注意,一定要强制推送,否则白改了

git push origin branch_name -force
# 简写
git push origin branch_name -f

撤销 rebase 修改

如果你在 git rebase 过程中遇到问题并希望中止 rebase,可以使用以下命令:

git rebase --abort

这个命令会将你的分支恢复到 rebase 开始之前的状态,撤销所有未完成的 rebase 操作。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VsCode配置ssh免密远程连接服务器的实现步骤

    VsCode配置ssh免密远程连接服务器的实现步骤

    现在,可以在VSCode中直接通过SSH连接到服务器,而无需每次输入密码,本文主要介绍了VsCode配置ssh免密远程连接服务器的实现步骤,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 如何给 GitHub commit 加个绿色图标(教程详解)

    如何给 GitHub commit 加个绿色图标(教程详解)

    这篇文章主要介绍了如何给 GitHub commit 加个绿色图标,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • vscode修改默认浏览器的方法

    vscode修改默认浏览器的方法

    本文给大家介绍的是如何实现Vscode浏览器打开html页面的方法,非常的实用,有需要的小伙伴可以查看下
    2020-02-02
  • 微信小程序学习之初探小程序

    微信小程序学习之初探小程序

    这两天“微信小程序”这个词占据了朋友圈,大有一番风起云涌之势,当然,还不可能夸张到使原生App开发人员失业这种程度。当然,作为一名技术人员,时刻保持对新技术的好奇心是必须的,所以在网上找大神的教程,搭建了一下开发环境,来学习一下这个新的开发框架。
    2016-09-09
  • 关于rpc长连接与短连接的思考记录

    关于rpc长连接与短连接的思考记录

    文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实际应用中需要根据具体情况选择长连接还是短连接,并讨论了负载均衡器在RPC中的作用
    2025-01-01
  • Application,Session,Cookies对象应用介绍

    Application,Session,Cookies对象应用介绍

    Application,Session,Cookies对象比较,对于客户端保存登录信息的朋友可以参考下。
    2011-05-05
  • HTTP 2.0 详细介绍

    HTTP 2.0 详细介绍

    本文主要介绍 HTTP 2.0的知识,这里整理了详细的资料,并对HTTP2.0的知识做了详解,有需要的小伙伴可以参考下
    2016-09-09
  • Git命令常用操作之代码拉取和提交方式

    Git命令常用操作之代码拉取和提交方式

    这篇文章主要介绍了Git命令常用操作之代码拉取和提交方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Win10下为VSCode配置LaTex编辑器的方法

    Win10下为VSCode配置LaTex编辑器的方法

    这篇文章主要介绍了Win10下为VSCode配置LaTex编辑器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • web服务器程序运行出现乱码问题的解决方法

    web服务器程序运行出现乱码问题的解决方法

    有时候程序运行是,出现乱码,不是因为数据库的问题,是因为没有定义编码的问题,大家可以看下养成良好的编码习惯。
    2009-12-12

最新评论