react-native:文件 android/java_pid14920.hprof 为 311.59 MB;这超出了 GitHub 的文件大小限制

Posted

技术标签:

【中文标题】react-native:文件 android/java_pid14920.hprof 为 311.59 MB;这超出了 GitHub 的文件大小限制【英文标题】:react-native: File android/java_pid14920.hprof is 311.59 MB; this exceeds GitHub's file size limit 【发布时间】: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. 【参考方案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 中。

    转到“.gitignore”

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

安卓/

*.hprof

    保存 .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

【讨论】:

以上是关于react-native:文件 android/java_pid14920.hprof 为 311.59 MB;这超出了 GitHub 的文件大小限制的主要内容,如果未能解决你的问题,请参考以下文章

React-native 需要任何文件

在 utils.js 文件(React-Native)中调用异步函数?

主目录之外的React-Native导入文件

有没有办法让 react-native 忽略一些不捆绑它们的文件?

【react-native】小结

文件无法脱机工作(React-Native)