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...

实干是实干者的通行证!

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

相关推荐
糕冷小美n3 小时前
elementuivue2表格不覆盖整个表格添加固定属性
前端·javascript·elementui
Alkaid:3 小时前
GIT常用命令
大数据·git
小哥不太逍遥3 小时前
Technical Report 2024
java·服务器·前端
沐墨染3 小时前
黑词分析与可疑对话挖掘组件的设计与实现
前端·elementui·数据挖掘·数据分析·vue·visual studio code
anOnion3 小时前
构建无障碍组件之Disclosure Pattern
前端·html·交互设计
threerocks3 小时前
前端将死,Agent 永生
前端·人工智能·ai编程
问道飞鱼4 小时前
【前端知识】Vite用法从入门到实战
前端·vite·项目构建
爱上妖精的尾巴4 小时前
8-10 WPS JSA 正则表达式:贪婪匹配
服务器·前端·javascript·正则表达式·wps·jsa
Aliex_git6 小时前
浏览器 API 兼容性解决方案
前端·笔记·学习
独泪了无痕6 小时前
useStorage:本地数据持久化利器
前端·vue.js