zoukankan      html  css  js  c++  java
  • 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 会回滚到之前提交的某个版本,如果前后两个版本有修改同一个文件;此操作会覆盖上次版本的文件。

  • 相关阅读:
    Java控制台五子棋编码学习
    Java Web基础
    JavaScript Unit Test with Mocha
    Cross-browser Testing Tool
    GRIDVIEW 控件
    C# .net ACCESS 网页增删改查 --留言板
    在一般处理文件中访问Session需要添加IRequiresSessionState(转载)
    win7 IIS7 发布网站 出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误"
    http://www.cnblogs.com/hanshuhe/archive/2012/08/30/vss.html
    win 7 配置 IIS
  • 原文地址:https://www.cnblogs.com/rui1236/p/13964094.html
Copyright © 2011-2022 走看看