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
相关推荐
无风听海4 小时前
git fsck 深度解析 Git 仓库的体检医生
git
洋仔11 小时前
Git 底层原理系列 · 第8讲 — HEAD 与 detached HEAD
git·开源
洋仔11 小时前
Git 底层原理系列 · 第4讲 — `git add` 与 `git commit` 底层做了什么
git·开源
猫咪老师QAQ12 小时前
基于 Git Flow 的团队协作与发布流程实践
git
caicai_xiaobai12 小时前
分享一个访问Git Hub的好方法
git
Joy T13 小时前
【Web3】跨链资金池与消息路由:CCIP 智能合约集成实战与权限收束
git·web3·node·智能合约·hardhat
難釋懷14 小时前
Nginx虚拟主机
git·nginx·github
moMo15 小时前
# Git 入门—代码仓库的使用
git·github
一路向北he16 小时前
git仓库创建新分支,上传文件
git
半个落月18 小时前
从零开始理解 Git 核心操作:告别单机开发的“原始时代”
git