【问题标题】:react-native: File android/java_pid14920.hprof is 311.59 MB; this exceeds GitHub's file size limitreact-native:文件 android/java_pid14920.hprof 为 311.59 MB;这超出了 GitHub 的文件大小限制
【发布时间】:2020-02-26 23:50:27
【问题描述】:

我想将我的项目推送到 github,但是我只是注意到在 android 文件夹中有一个名为 java_pid14920.hprof 的文件,导致大约 300MB

remote: error: File android/java_pid14920.hprof is 301.75 MB; this exceeds GitHub's file size limit of 100.00 MB

我想知道删除这个文件是否安全?

【问题讨论】:

  • 你能找到解决办法吗?
  • 简短的回答是肯定的。您可以(并且应该)删除堆转储文件 (.hprof)。更多信息在这里Oracle Docs.

标签: android react-native github hprof


【解决方案1】:

这里唯一的答案对我不起作用,但我找到了一个可行的解决方案。

我的违规文件是android/java_pid2325.hprof,但你的显然可能会有所不同。我用git filter-branch

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch android/java_pid2325.hprof'

确保将*.hprof 添加到您的.gitignore 并推送提交。

注意*-> 确保将 *.hprof 的名称更改为与本地 *.hprof 相同的名称

【讨论】:

  • 乐于助人! @RizwanIjaz
  • 非常感谢,这是对我来说最好的答案。
  • 请问如何将 *.hprof 添加到 .gitignore ?我有 4 个 hprof 文件,是否将它们全部添加到 gitignore 中?
  • @zedArt 解决方案由 Hyeomin 提供 转到“.gitignore” 只需输入这个 sn-p。 *.hprof 保存 .gitignore 文件。
【解决方案2】:

这听起来像是一个堆分析输出文件,您可能根本不希望它出现在您的存储库中。您需要从整个历史记录中删除它,并可能在.gitignore 中添加一个条目以忽略*.hprof。如果文件不在最新的提交中,简单地删除它不会使您的存储库可推送到 GitHub;您必须从整个历史记录中删除该对象。

如果您可以轻松找到引入它的提交(尝试git log -- android/java_pid14920.hprof),您可以执行git rm android/java_pid14920.hprof,然后执行git commit --fixup HASH-OF-COMMIT && GIT_SEQUENCE_EDITOR=true git rebase -ir --autosquash HASH-OF-COMMIT^(注意插入符号)来重新定位文件。

您还可以使用git filter-branchbfg 之类的工具来过滤掉不需要的大型对象。

请注意,这样做会重写任何介入提交的历史记录,更改它们的对象 ID。

【讨论】:

    【解决方案3】:

    我运行了这个命令。它适用于 Windows 10

    git filter-branch -f --index-filter "git rm --cached --ignore-unmatch android/java_pid10213.hprof"
    
    • 使用 " 代替 '

    【讨论】:

      【解决方案4】:

      @bk2204 答案对我有用。 就我而言,.hprof 文件位于 android/hprof 中。

      1. 转到“.gitignore”

      2. 只要把这个 sn-p 放进去。

      安卓/

      *.hprof

      1. 保存 .gitignore 文件。

      【讨论】:

      • 我已经手动删除了 hprof 文件。然后我跑git clean -f 并再次尝试推动。但是,我不断收到错误消息。有什么解决方法吗?
      • 但是提交已经完成,放入 .gitignore 将从下一次提交开始工作。
      • 我的问题是由于 hprof 大小而无法提交。所以我在提交之前就放了这行代码,它奏效了。
      【解决方案5】:

      我提交了两个 hpprof 文件; 所以我只是运行了这个命令,文件已经成功删除了。

      git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch android/java_pid21295.hprof android/java_pid16516.hprof'
      

      【讨论】:

        【解决方案6】:

        这对我有用

        git filter-branch -f --index-filter "git rm --cached --ignore-unmatch example/android/java_pid2243.hprof"
        

        然后

        git push -u origin main
        

        注意:

        我的文件出现在这样的目录中。

        example/android/java_pid2243.prof
        

        【讨论】:

          猜你喜欢
          • 2015-09-29
          • 2016-01-24
          • 2020-04-22
          • 1970-01-01
          • 1970-01-01
          • 2018-01-02
          • 1970-01-01
          • 2023-03-17
          • 2021-01-24
          相关资源
          最近更新 更多