git删除某次commit

工作中可能会遇到开发过的功能代码不在下一个版本计划里,或者别的类似的需要把某个分支上已经提交的代码删除掉。可以使用git命令操作,避免人工操作哪些文件需要提交、哪些文件需要删除!

开发中每个提交最好对应一个完整的功能,这样对项目的管理很友好。也可以将 gitjire强制关联起来,以实现一次提交对应一个需求。

主要通过 rebase 命令实现

具体步骤如下:

1、查看提交记录

sh 复制代码
git log --oneline
sh 复制代码
837534b (HEAD -> master, github/master, gitee/master) feat: 测试4
058eefb feat: 测试3
9b6619d feat: 测试2
a3d6ef0 feat: 测试1

2、交互式 rebase

使用Git的交互式rebase功能,我们可以删除中间提交。rebase是一种改变提交历史的方式。执行rebase时,我们可以编辑、删除和合并提交。

修改已经提交过的 commit message 信息也是通过 rebase 变基操作,把 【pick】修改成【edit】

要开始交互式rebase,我们可以使用以下命令:

sh 复制代码
git rebase -i <commitID>

假如要删除 【测试2】【测试3】的提交记录,我们可以把 commitID 写成【测试1】的 a3d6ef0

sh 复制代码
git rebase -i a3d6ef0

在交互式界面中,每个提交之前都有一个关键字"pick"。要删除某个提交,我们只需要将关键字改为"drop"。

保存并关闭交互式界面后,Git会执行rebase,删除我们指定的提交。

再次运行 git log --oneline查看记录

发现【测试2】【测试3】的提交记录已经没了

3、强制推送

由于我们改变了提交历史,我们需要使用强制推送(force push)来更新远程仓库。

使用以下命令进行强制推送:

sh 复制代码
git push -f origin <branch>

我是 甜点cc ,个人网站: home.i-xiao.space/vuepress-st...

实干是实干者的通行证!

公众号:【看见另一种可能】

相关推荐
云水一下3 小时前
从零开始!VMware安装Fedora Workstation 44桌面系统完整教程
前端
小码哥_常5 小时前
安卓黑科技:实现多平台商品详情页一键跳转APP
前端
killerbasd5 小时前
还是迷茫 5.3
前端·react.js·前端框架
不会敲代码16 小时前
TCP/IP 与前端性能:从数据包到首次渲染的底层逻辑
前端·tcp/ip
kyriewen6 小时前
奥特曼借GPT-5.5干杯,而你的Copilot正按Token收钱
前端·github·openai
AC赳赳老秦6 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
kyriewen6 小时前
代码写成一锅粥?3个设计模式让你的项目“起死回生”
前端·javascript·设计模式
带娃的IT创业者6 小时前
Git commands I run before reading any code
git·开发工具·版本控制·编程技巧·代码审查
千寻girling6 小时前
《 Git 详细教程 》
前端·后端·面试
九成宫7 小时前
Git 与远程仓库实操记录:克隆、配置、分支推送与问题排查
笔记·git·ssh