一、问题

近期在使用git时遇到一个问题,就是在git上传文件时,将一个100兆的大文件添加到了git,并执行了push操作,这时在上传完毕后,会提示这个错误

Large files detected
see http:git.io/iEPt8g for more information
this is larger than GitHubs recommended maximum file size of 50MB

即git无法上传超过50M的单个文件。

如果未push,可通过git commit --amend命令修复,下面2.6有将如何使用。

二、解决办法

解决办法是通过git reset HEAD~1方式撤销该版本的文件提交,之后的版本文件保留,但需重新添加一次,具体使用举例如下

1、创建一个本地git项目

使用git clone 命令,创建一个本地git项目 如

E:\Project\Git\MVC> git clone https://github.com/flowbywind/PagedListVnext.git  

2、项目中添加文件

2.1在项目目录下添加1.txt文件,执行add和commit操作,具体如下

2.2 在项目目录下添加大文件(100多M),执行add和commit操作,具体如下

2.3 在项目目录下继续添加文件,执行add和commit操作,具体如下

2.4执行git push 操作

由于2.2中的文件超过50M,执行git push origin master命令之后,会出现文章开头说的问题,这时候你会如果删除了该大文件,并git commit操作,在git push之后依然会上传该大文件。这样就照成了每次都提交不了的问题,所以我们要做的是撤销步骤2,并不影响步骤2后续的文件。

2.5 撤销步骤2的操作

使用命令git reset --mixed HEAD~2,回退到第一步,将步骤2取消掉,步骤3的文件将会撤销,变成等待添加,但不会丢失,我们只需要在add一次即可。

这时候我们发现,执行完该命令后任务回退到第一步操作,我们把刚才的大文件给删掉,然后执行添加命令

然后执行git push origin master 实现将后续文件上传。

2.6 忘记删掉大文件,又进行了commit操作之后的修复。

如果忘记删掉大文件,又直接commit了,但仅限于未push,可通过git commit --remond命令撤销操作,具体如下

三、备注

关于git reset命令,包括 --mixed,--soft --hard等,其中--mixed为默认方式,他们之间的区别如下

git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
git reset -soft :取消了commit
git reset -mixed(默认) :取消了commit ,取消了add
git reset -hard :取消了commit ,取消了add,取消源文件修改

转载于:https://www.cnblogs.com/mafeng/p/7783597.html

git 撤销提交的文件相关推荐

  1. linux git 撤销删除文件,删除文件以后,如何通过git撤销删除的文件,不提交到远端代码库...

    检查状态,看看发生了什么: $ git status On branch master Changed but not updated: (use "git add/rm ..." ...

  2. IDEA在Git中提交忽略文件的设置

    关于IDEA在Git中提交忽略文件的设置 首先在idea中安装插件用来生成和管理 .gitignore 文件,安装成功后重启idea 新建.gitignore 文件 将不需要提交的文件添加到.giti ...

  3. git 撤销提交 撤销暂存区 取消操作

    撤销提交: 开发过程中我们对代码进行了修改,修改之后进行git add files,然后执行git commit -m "cmt info",在提交之后我们就可以push到远程仓库 ...

  4. git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式

    在使用git进行项目管理的时候,有时候一些安装包之类,或者自己本地项目使用的一些编译文件,在不需要提交到远程仓库时,可以通过以下几种方式设置忽略提交,包括文件夹和单个文件.之前自己项目里面采用了第二种 ...

  5. Git第一次提交代码/文件的操作

    Git第一次提交代码到远程仓库 第一步:git init 初始化项目文件夹 第二步:git add . 键所有文件添加到暂存区 第三步:git commit -m "first commit ...

  6. git撤销提交到暂存区的代码,撤销更改过的代码

    一.查看暂存区的代码git status 二.使用命令 git reset HEAD app/controllers/studio/LivePayListAction.java撤销提交到暂存区的代码 ...

  7. Git不提交指定文件

    https://www.jianshu.com/p/9893edf6766d 大家在开发项目的时候都很喜欢使用git作为代码管理工具,但是在开发项目的时候我们的本地配置文件不应该覆盖服务器中的配置文件 ...

  8. 小程序自带git方法提交时文件冲突的解决

    此方式适合不太懂操作git的朋友. 小程序自带的git版本管理如图 git提交代码的正常流程: 先 commit(提交) 再pull(拉取)最后push(推送) 冲突一定是出现在pull(拉取)后的过 ...

  9. git 批量提交修改文件_Git批量修改提交历史

    有些时候我们可能需要批量修改提交历史,当然了,最近一次的提交历史很简单我们可以利用 git commit --amend 来进行最近一次提交的修改,如果你此时想要更新作者提交时间等也可以在amend之 ...

最新文章

  1. MySQL数据库子查询
  2. [转]CS的顶级会议和期刊
  3. 怎样让项目经理更受企业和团队欢迎
  4. [密码学] DES(一)
  5. Python 爬起数据时 'gbk' codec can't encode character '\xa0' 的问题
  6. mysql myisam存储引擎不能添加外键,添加后显示成功,实则失败
  7. malloc、calloc、realloc和free
  8. 【OpenCV 例程200篇】17. 两张图像的渐变切换
  9. Django简单打开一个文件
  10. PWA--未来式app
  11. 【opencv450-samples】digits_svm 手写数字识别SVM vs KNearest (SVM and KNearest digit recognition)
  12. lisp画配筋_[BIM]柱配筋施工图的信息化应用
  13. Hadoop面试试题
  14. MATLAB Simmechanics/Simscape四旋翼无人机控制仿真(1) SolidWorks模型的导入
  15. MyEclipse10破解 运行run.bat闪退 亲自试验
  16. 机器人改变生活利弊英语作文_机器人的危害英语作文
  17. 智能手表音频特性测试_TicWatch Pro 3 体验:智能手表的集大成者
  18. Service starting has been prevented by iaware or trustsbase sInfo ServiceInfo 解决方法
  19. 由建站学linux---第13课 域名重定向
  20. html中table的样式设置

热门文章

  1. 数学老师必备工具,你的最爱!
  2. TCP,IP,HTTP,SOCKET区别和联系
  3. Java jdk 安装笔记
  4. 用单循环链表实现约瑟夫问题。
  5. Excel的日期格式约定与解析
  6. 淘淘商城学习笔记 之 上传图片到远程服务器,图片的回显出现的bug
  7. ZOJ 38727(贪心)
  8. 消费者最关心的就是你的用户体验,以及保证产品品质,保证价格和服务
  9. 数据库——startup,startup mount,startup nomount有什么区别
  10. centos ifconfig_Linux主流发行版本配置IP总结(Ubuntu、CentOS、Redhat、Suse)