git仓库删除某个历史提交

目录

问题

如果我们在开发过程中,存在一些验证性的提交或者失误性的提交,那么这些提交我们不想要了,怎么办?

情况1

如果是想要删除某个commitid之后的所有提交

那么git reset 可以满足你

shell 复制代码
git reset --hard 你要保留的最近的一次提交

比如

情况2

如果是想要删除commit记录中间的某次提交

那就需要用到git rebase (变基)命令

shell 复制代码
git rebase -i 要删除的提交的前一个commitid

比如

执行命令后会进入到 vim编辑界面,如下

上面pick commitid desc 的行显示的是自目标提交之后的所有提交,默认都是pick,你可以选择你不想要的分支,将pick 改为drop。
如果想要删除某几个分支,这里可以选择对应的行,都改为drop即可

vim 默认是预览模式,英文输入法,键入i,进入插入模式,就可以修改了

然后esc,退出插入模式
键入SHIFT+:
键入wq,(表示write&quit,保存退出)

最后,强行推送到远端分支即可

shell 复制代码
git push --force origin feature/xxx
相关推荐
Codeking__8 小时前
Redis——基本通用命令
redis·git·github
Dontla13 小时前
Git error: fatal: detected dubious ownership in repository at xxx
git
论迹14 小时前
【Git】-- 多人协作
git·ubuntu
roamingcode15 小时前
从混沌到秩序:Git Diff 结构化报告的 Claude Code Skill 实践
人工智能·git·agent·skill·claude code·领域知识包·ai经验复用
ss27317 小时前
idea中git更新项目:将传入更改合并到当前分支,在传入更改上变基当前分支
java·git·intellij-idea
hopsky17 小时前
好用!Git 同时开发多个分支
git
secondyoung19 小时前
Git使用:rebase用法
c语言·经验分享·git·vscode
萧曵 丶20 小时前
CI/CD 流程
git·ci/cd
import_random20 小时前
[git版本控制]git push(详解)
git
bing_feilong1 天前
gitee pull 总是需要用户名和密码,该如何设置?
git·gitee