【问题标题】:My git push is stuck on a large file. What to do?我的 git push 卡在一个大文件上。该怎么办?
【发布时间】:2014-06-28 15:26:00
【问题描述】:

我收到一个致命的 sha1 错误。我相信它在尝试编写大文件时被卡住了。 我的状态说我提前 8 次提交。我试图将文件扩展名添加到排除文件夹中的忽略列表,但它仍然卡住。如何在不丢失本地更改(大文件除外)的情况下继续操作?

我试过Predict how much data will be pushed in a git push 并且包很大~650MB。

我不知道如何忽略之前未推送的提交中的文件。我可以在不丢失本地文件的情况下清除旧提交吗?然后删除大文件然后再次提交?

【问题讨论】:

    标签: git


    【解决方案1】:

    来自http://git-scm.com/book/en/Git-Tools-Rewriting-History

    从每次提交中删除文件

    这种情况相当普遍。有人不小心用一个粗心的 git add . 提交了一个巨大的二进制文件,而你想到处删除它。也许你不小心提交了一个包含密码的文件,并且你想让你的项目开源。 filter-branch 是您可能想要用来清理整个历史记录的工具。要从整个历史记录中删除名为 passwords.txt 的文件,您可以使用 --tree-filter 选项来过滤分支:

    $ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD

    但如果它只是你搞砸的最后一次提交,你可以用 git rm large_filegit commit --amend 解决它

    【讨论】:

      猜你喜欢
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 2021-08-20
      • 1970-01-01
      • 2023-03-30
      • 2014-03-07
      • 2022-10-21
      相关资源
      最近更新 更多