• git 撤销提交的文件


    一、问题

    近期在使用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:ProjectGitMVC> git clone https://github.com/flowbywind/PagedListVnext.git  

    2、项目中添加文件

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

    image

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

    image

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

    image

    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一次即可。

    image

    image

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

    image

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

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

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

    image

    三、备注

    关于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,取消源文件修改
  • 相关阅读:
    [转]C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
    C#设置System.Net.ServicePointManager.DefaultConnectionLimit,突破Http协议的并发连接数限制
    [转]WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键
    [转]C#打印DataGridView的例子源码
    c# TreeView 父节点选中/不选时子节点都同步选中/不选
    C#中PictureBox异步加载图片
    [转]FusionCharts 3.1 破解版 – 非常好用的Flash图表控件
    配合JavaScript拖动页面中控件
    在ThinkPad T400上安装win2003 所遇问题
    C# 抛弃MoveTo来实现文件重命名
  • 原文地址:https://www.cnblogs.com/mafeng/p/7783597.html
Copyright © 2020-2023  润新知