删除最后一次提交

命令很简单,但是不能马虎,不能多回滚或者少回滚,不然就麻烦不断了。

主要命令:

  • 第一步:回滚上一次提交

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相关推荐

  1. git删除指定commit

    git删除指定commit 1.使用git log 命令,查看已提交的记录.例如红色圈出的commit是本次要删除的commit.(ps:使用git log查看日志,退出的时候直接按q就退出来了) 2 ...

  2. Gitlab删除历史commit清理空间

    在gitlab项目中,使用了太久的项目会有很多的提交,项目非常地大,如何清空项目以前的提交呢?又能保证现在文件不受影响,这里提供一个思路及解决方案,就是使用一个新创建的分支来处理这一情况. 解决方案 ...

  3. Git 删除本地commit未push文件 ,push本地commit文件

    1,起因 在push文件的时候, push了一个大家伙,有400M, 但是push要求单个文件大小不能超过200M 所以,这个大家伙已经进行本地commit,但又不能push上去, 导致在这之后需要p ...

  4. git删除历史遗留大文件

    git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch your file na ...

  5. git删除所有历史提交记录,只留下最新的干净代码

    git删除所有历史提交记录,只留下最新的干净代码 1.Checkoutgit checkout --orphan latest_branch2. Add all the filesgit add -A ...

  6. git删除某次提交(某个commit)的方法【转】

    本文转载自:https://www.36nu.com/post/275 git删除某次提交(某个commit)的方法 疯狂的兔子 发表于 4个月前 阅读 536 收藏 0 推荐 0 评论 0 推荐收藏 ...

  7. git删除相关历史提交记录,相关文件保持当前状态

          git删除相关历史提交记录,相关文件保持当前状态 引言   新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜.这不实战类型的博客记录又开始了!当然实战类型的博客 ...

  8. git如何清空历史commit?

    背景 因为之前做笔记都是在github上面,时间久了之后,commit的次数会很多,仓库的体积越来越大,这就导致每次需要clone的时候,需要等待很久才可以clone成功,花费了不少时间. 或者是当f ...

  9. git 解决ahead behind分叉以及删除远端commit

    解决ahead / behind 先reset到ahead,然后退回到分叉,再checkout 远端的behind 如果要删除本地的commit, 先到本地的最前端, 然后再用下面的命令 If you ...

  10. git删除中间某个commit

    文章转自:https://blog.csdn.net/dongfengkuayue/article/details/54599703 版权归原作者! 1.git log获取commit信息 2.git ...

最新文章

  1. 3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  2. menuetos oracle,使用DistroTest服务免费在线测试Linux和Unix操作系统
  3. Codeforces Round #716 (Div. 2)
  4. CentOS 6.5上安装Zabbix 2.4.8
  5. emq auth mysql_EMQ X 认证鉴权(一)——基于 MySQL 的 MQTT 连接认证
  6. windows下使用DOS命令删除大文件
  7. vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向
  8. 《Python预测之美》送书活动,中奖名单公示
  9. Go语言:生成随机数
  10. JS拖动技术--- 关于setCapture
  11. Word中批量进行中英文标点的转换
  12. 取消Word自动首字母大写步骤
  13. kali linux 网络渗透测试学习笔记(三)社会工程学之Java攻击:钓鱼网站制作
  14. M - Help Hanzo(模拟素数筛思想+优化)
  15. 《三国志·战略版》爆火,友盟+助力手游实现高效促活
  16. cocos creator制作游戏实战-Flak Cannon(二)
  17. java之jdk14安装和环境设置以及eclipse创建工程出现红叉
  18. matplotlib中cmap与color参数的设置
  19. c 链表排序 - 选择排序
  20. Windows服务器防火墙端口怎么开放?扬州服务器租用140.210.20.X

热门文章

  1. 撤消 git rebase
  2. html中如何设计圆形图案,纯CSS绘制漂亮的圆形图案效果
  3. alienware Win8 系统安装
  4. 透视宝移动端对Unity手机游戏引擎监控实现 1
  5. 阿里公司将推出债卷,数字巨大
  6. 大学计算机基础第一章知识点归纳,《大学计算机基础》主要知识点
  7. 【RDMA】intel 因特尔RDMA 驱动和ibverslib 库安装笔记
  8. 多喝牛奶少吃糖 正确饮食摆脱经前综合征
  9. webStorm下载旧版本
  10. nacos做配置中心读取不到配置报错:Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder ‘cou