由于大文件而撤消Git提交

时间:2015-04-02 13:19:59

标签: git

我正在尝试更新GitHub上的私有存储库,但是大文件阻止我这样做。 GitHub警告我文件太大了:

使用最多2个线程进行Delta压缩。

Compressing objects: 100% (18/18), done.
Writing objects: 100% (22/22), 8.69 MiB | 3 KiB/s, done.
Total 22 (delta 11), reused 0 (delta 0)
remote: error: GH001: Large files detected.
remote: error: Trace: 0c940595507e24d7d2765083a99bdae8
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File logs/log.dat is 101.98 MB; this exceeds GitHub's file   size limit of 100 MB

然后我清除了文件内容并重新提交。但是,我仍然遇到同样的错误。我也试过以下无济于事:

git reset HEAD~1

git rm --cached logs/log.dat

有人可以帮忙吗?

注意:在发布此问题之前,我已尝试过列出的解决方案。当他们似乎无法工作时,我会寻求帮助。

1 个答案:

答案 0 :(得分:0)

首先,修剪不再连接的东西:

git prune

如果这没有帮助,也许你的提交仍然存在;

git prune-packed

编辑如果仍然不起作用,则表示您的repo历史记录中仍然存在添加原始文件的提交(否则,您git rm --cached之后的git reset 1}}没有意义)。

您可以在执行git rm之后提交,然后git rebase -i HEAD~10,在最初添加文件的提交之后立即移动rm-commit的行。申请该rebase。然后再次(我总是分两步执行此操作,只是为了将混淆保持在可容忍的水平)git rebase -i HEAD~10,这次将您的rm-commits类型从pick更改为fixup。这应该将添加的文件从添加提交中删除。