git 删除历史commit
删除最后一次提交
命令很简单,但是不能马虎,不能多回滚或者少回滚,不然就麻烦不断了。
主要命令:
- 第一步:回滚上一次提交
git reset --hard HEAD^
就很简单,回滚master分支的上一次提交。
- 第二步:强制提交本地代码
git push origin master -f
由于本地reset 之后本地库落后于远程N个版本,所以需要强制提交。
路上可能遇到的坑:
提交的过程中,有可能没那么顺利。比如提示error:
- pre-receive hook declined ....
为什么最后强制提交会失效,原因:分支被保护了,无法强制提交。
不着急,不要慌。我们记录距离支成功回滚代码只差最后一步了——解除branch 保护。怎么玩?很简单,进入gitLab。然后找到Settings(需要账户具备该权限),然后找到Protected branches,然后点击Unprotect按钮。(如图)
强制提交错误
解除保护后,再尝试使用强制提交的命令即可。
最后,大功告成。
删除指定commit提交
如果只能删除最后一次提交记录,多少还是有点鸡肋。有时候我们需要删除的可能是中间的两条commit 记录。其实玩法大同小异。
首先我们确认需要删除的commit log id 是多少,比如:我们需要删除的是:21a254a2b7 对应的这条log。
然后使用git rebase 命令,命令的意思是可以改写从 21a254a2b7 commit id 开始后的所有提交记录。
git rebase -i 21a254a2b7^
执行完这个命令后,就可以看到 21a254a2b7 后的所有commit 记录了。
默认是使用vim 编辑器打开了commit log list。然后我们就可以针对我们不需要的某些log 进行删除了。把原本的pick 单词修改为drop 就表示该commit log 我们需要删除。如下图
并且图片中还有对应的说明解释。
分支删除完成后,保存该文件并退出vim 编辑器。
最后,使用强制更新的命令:
git push origin master -f
如果出现“pre-receive hook declined ....”,处理方式参看上面的方案。
全程命令:
最后删除成功,我们对比下删除前后的log记录。
git 删除历史commit相关推荐
- git删除指定commit
git删除指定commit 1.使用git log 命令,查看已提交的记录.例如红色圈出的commit是本次要删除的commit.(ps:使用git log查看日志,退出的时候直接按q就退出来了) 2 ...
- Gitlab删除历史commit清理空间
在gitlab项目中,使用了太久的项目会有很多的提交,项目非常地大,如何清空项目以前的提交呢?又能保证现在文件不受影响,这里提供一个思路及解决方案,就是使用一个新创建的分支来处理这一情况. 解决方案 ...
- Git 删除本地commit未push文件 ,push本地commit文件
1,起因 在push文件的时候, push了一个大家伙,有400M, 但是push要求单个文件大小不能超过200M 所以,这个大家伙已经进行本地commit,但又不能push上去, 导致在这之后需要p ...
- git删除历史遗留大文件
git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch your file na ...
- git删除所有历史提交记录,只留下最新的干净代码
git删除所有历史提交记录,只留下最新的干净代码 1.Checkoutgit checkout --orphan latest_branch2. Add all the filesgit add -A ...
- git删除某次提交(某个commit)的方法【转】
本文转载自:https://www.36nu.com/post/275 git删除某次提交(某个commit)的方法 疯狂的兔子 发表于 4个月前 阅读 536 收藏 0 推荐 0 评论 0 推荐收藏 ...
- git删除相关历史提交记录,相关文件保持当前状态
git删除相关历史提交记录,相关文件保持当前状态 引言 新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜.这不实战类型的博客记录又开始了!当然实战类型的博客 ...
- git如何清空历史commit?
背景 因为之前做笔记都是在github上面,时间久了之后,commit的次数会很多,仓库的体积越来越大,这就导致每次需要clone的时候,需要等待很久才可以clone成功,花费了不少时间. 或者是当f ...
- git 解决ahead behind分叉以及删除远端commit
解决ahead / behind 先reset到ahead,然后退回到分叉,再checkout 远端的behind 如果要删除本地的commit, 先到本地的最前端, 然后再用下面的命令 If you ...
- git删除中间某个commit
文章转自:https://blog.csdn.net/dongfengkuayue/article/details/54599703 版权归原作者! 1.git log获取commit信息 2.git ...
最新文章
- 3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- menuetos oracle,使用DistroTest服务免费在线测试Linux和Unix操作系统
- Codeforces Round #716 (Div. 2)
- CentOS 6.5上安装Zabbix 2.4.8
- emq auth mysql_EMQ X 认证鉴权(一)——基于 MySQL 的 MQTT 连接认证
- windows下使用DOS命令删除大文件
- vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向
- 《Python预测之美》送书活动,中奖名单公示
- Go语言:生成随机数
- JS拖动技术--- 关于setCapture
- Word中批量进行中英文标点的转换
- 取消Word自动首字母大写步骤
- kali linux 网络渗透测试学习笔记(三)社会工程学之Java攻击:钓鱼网站制作
- M - Help Hanzo(模拟素数筛思想+优化)
- 《三国志·战略版》爆火,友盟+助力手游实现高效促活
- cocos creator制作游戏实战-Flak Cannon(二)
- java之jdk14安装和环境设置以及eclipse创建工程出现红叉
- matplotlib中cmap与color参数的设置
- c 链表排序 - 选择排序
- Windows服务器防火墙端口怎么开放?扬州服务器租用140.210.20.X
热门文章
- 撤消 git rebase
- html中如何设计圆形图案,纯CSS绘制漂亮的圆形图案效果
- alienware Win8 系统安装
- 透视宝移动端对Unity手机游戏引擎监控实现 1
- 阿里公司将推出债卷,数字巨大
- 大学计算机基础第一章知识点归纳,《大学计算机基础》主要知识点
- 【RDMA】intel 因特尔RDMA 驱动和ibverslib 库安装笔记
- 多喝牛奶少吃糖 正确饮食摆脱经前综合征
- webStorm下载旧版本
- nacos做配置中心读取不到配置报错:Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder ‘cou