Git Push大文件报错后如何撤回
昨晚在提交一个项目代码时,不小心把数据库备份文件也一起Commit了;到最后Push的时候报错了。最后弄了半天解决了,在此记录下。
如下图,文件有108M。

项目放在第三方托管平台上,根据提示查看了原因。后来看了下像单个文件最大不超过50M。
网上找处理方法,有很多种。比如删除提交过大的文件:git filter-branch --tree-filter 'rm -f 文件名' HEAD 但是这命令我这边执行不行报错:fatal: ambiguous argument 'database_bak.sql.gz'': unknown revision or path not in the working tree.
还有说删除git 缓冲区文件 git rm --cached "文件路径" 我都执行了不行。
还有撤回commit:git reset --soft HEAD^ 此命令也无效。
实际做法有两种
第一种撤回Commit。
撤回commit的真正做法应该是
1、先执行git log,查看每次commit的id。首先切换到对应分支目录下。然后:git log

因为出现问题后会尝试各种处理方式,有时候commit会有多次提交。这里要撤回所有本次和大文件提交的commit。
然后依次执行:gti reset 40cf738e636ab0ccfd60cd14b6494fd6a848113b 有多个commit记录id就执行多少次。
等你执行完后,你看git文件状态。你的大文那个绿色勾会消失;证明这文件没有被添加一样。这个时候就已经好了。
当然也可以通过小乌龟图形化的操作,直接撤回到某个提交记录上。具体就是右键show log。然后reset master to this

第二种回滚到前个版本 revert
git revert -n f330e468edeffe32f7bc8216038b069f21cae169
revert 会回滚到之前提交的某个版本,如果前后两个版本有修改同一个文件;此操作会覆盖上次版本的文件。
Git Push大文件报错后如何撤回的更多相关文章
- Nginx反向代理上传大文件报错(failed to load resource : net :: ERR_CONNECTION_RESET)
转自: https://blog.csdn.net/kinginblue/article/details/50753271?locationNum=14&fps=1 Nginx反向代理上传大文 ...
- git push origin master 报错 remote rejected] master -> master (branch is currently checked out)
解决办法: 977down vote You can simply convert your remote repository to bare repository (there is no wor ...
- git push大文件失败(write error: Broken pipe)完美解决
问题 在使用git push推送大文件(超过了100MB)到GitHub远程仓库时提示异常,异常信息如下: fatal: sha1 file '<stdout>' write error: ...
- 解决Git - git push origin master 报错
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 欢迎大家关注我的微信公众号:「醉翁猫咪」 原因:github仓库中没有README.md文件 解决如下: 重新输入git push ...
- Git - git push origin master 报错的解决方法
亲测实用,转载保存,原文地址:https://blog.csdn.net/kangvcar/article/details/72773904 错误提示如下: [root@linux1 php]# gi ...
- Mysql导入大文件报错(MySQL server has gone away(error 2006))
前言 我们在导入mysql数据时候,mysql客户端突然报错:MySQL server has gone away(error 2006) 类似这种情况,处理思路为:调节mysql允许导入包的大小即可 ...
- 解决FileUpload上传大文件报错
<system.webServer> <security> <requestFiltering> <requestLimits maxAllowedConte ...
- linux mysql source 导入大文件报错解决办法
找到mysql的配置文件目录 my.cnf interactive_timeout = 120wait_timeout = 120max_allowed_packet = 500M 在导入过程中可能会 ...
- git 新建本地分支后将本地分支推送到远程库, 使用git pull 或者 git push 的时候报错
是因为本地分支和远程分支没有建立联系 (使用git branch -vv 可以查看本地分支和远程分支的关联关系) .根据命令行提示只需要执行以下命令即可git branch --set-upst ...
随机推荐
- 如何在Windows7安装U盘中加入USB3.0驱动的支持
安装前请务必备份好您硬盘中的重要数据. 一.在Windows7安装U盘中加入USB3.0驱动的支持 故障现象: 原生Win7系统不包含USB3.0的驱动,所以无法使用USB3.0的U盘在US ...
- 项目使用eslint
今天eslint版本更新了,然后昂,有些奇奇怪怪的错误提示了,然后想,这我得 1.配置一个保存时根据eslint规则自动修复 2.欸,之前编码遇到未使用的变量都会有标记黄线,我很好定位,这会怎么没了 ...
- TP5调用小程序微信支付,回调,在待支付中再次调用微信支付
1,必须要有 $mch_id $key $appid这三个值,是需要去申请的,我是直接用公司的2,购买商品订单号用户openid统一下单名称商品价格(必须以分为单位,调起微信支付)服务器的ip地址(没 ...
- .Net Core中使用Grpc
一.Grpc概述 gRPC 基于如下思想:定义一个服务, 指定其可以被远程调用的方法及其参数和返回类型.gRPC 默认使用protocol buffers作为接口定义语言,来描述服务接口和有效载荷消息 ...
- spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)
一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...
- ansible通过yum/dnf模块给受控机安装软件(ansible2.9.5)
一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...
- python+selenium 爬取中国工业园网
import math import re import requests from lxml import etree type = "https://www.cnrepark.com/g ...
- MySQL备份和恢复[4]-xtrabackup备份工具
xtrabackup工具介绍 Percona 公司 官网:www.percona.com percona-server InnoDB --> XtraDB Xtrabackup备份工具 perc ...
- EFS加密
目录 EFS简介 EFS的特点 EFS的缺陷 EFS证书 证书的导出 证书的安装 EFS加密 方法一 方法二 EFS简介 EFS(Encrypting File System,加密文件系统)是Wind ...
- 从0实现python批量爬取p站插画
一.本文编写缘由 很久没有写过爬虫,已经忘得差不多了.以爬取p站图片为着手点,进行爬虫复习与实践. 欢迎学习Python的小伙伴可以加我扣群86七06七945,大家一起学习讨论 二.获取网页源码 爬取 ...