【问题标题】:Phantom file in github commitgithub提交中的幻像文件
【发布时间】:2013-08-30 05:06:49
【问题描述】:

我正在尝试将一些更改推送到我的 github 存储库,但由于 git 认为存储库中有一个大文件,因此推送失败。

remote: Error code: 38865a38ccad9b1d9f394c35344906e6
remote: warning: Error GH413: Large files detected.
remote: warning: See http://git.io/iEPt8g for more information.
remote: error: File videos/Lecture2.mp4 is 134.01 MB; this exceeds GitHub's file size limit of 100 MB

但文件 videos/Lecture2.mp4 不在存储库中。也没有视频目录。

关于如何删除此文件以便我可以推送其他更改的任何想法?

【问题讨论】:

  • 你怎么确定它不在存储库中?
  • 该文件是否存在于您的历史记录中?它不必存在于工作副本的当前状态中,Git 想要推送它,它只需要在你的历史中存在一次,然后它仍然会在你的仓库中,即使你从最近提交中代码的当前状态。
  • 如果您输入git log --oneline --name-status --patch,然后在less 寻呼机中输入/Lecture2.mp4,您会在提交历史记录中看到该文件吗?

标签: git


【解决方案1】:

如果该文件在 git 存储库的历史记录中的任何时间点被提交,但随后被删除,则您不会在当前状态下看到它,但它仍会被推送。

尝试 BFG 从您的历史记录中删除该大文件。

BFG Repo-Cleaner: "像 git-filter-branch 一样删除大的或麻烦的 blob,但速度更快。"

【讨论】:

  • 可能更容易做到git filter-branch --tree-filter 'rm filename' HEAD
  • @nishantjr 比 bfg --delete-files filename my-repo.git 容易吗?而且bfggit filter-branch 快得多。
  • 可以确认 bfg 更好。虽然我更喜欢复制和粘贴 @nishantjr 的命令来解决我的 big-file-now-deleted-but-stil-choking-$git push 问题的简单性,但它只是不起作用。从我的 git shell 下载、安装 bfg 和使用 java 似乎需要做很多工作,但它确实成功了。
  • 不下载软件,最好的方法是什么?当我运行上面的“git filter-branch ...”命令时,我收到此错误:“您需要从工作树的顶层运行此命令。”
猜你喜欢
  • 2012-02-24
  • 2015-09-23
  • 1970-01-01
  • 2015-03-17
  • 2017-12-04
  • 2016-02-11
  • 1970-01-01
  • 2019-03-16
  • 2016-12-30
相关资源
最近更新 更多