React-Native: 文件android/java_pid14920.hprof大小为311.59 MB,超出了GitHub的文件大小限制。

32

我想把我的项目推送到GitHub,但我发现在安卓文件夹中有一个名为java_pid14920.hprof的文件,大小约为300MB。

远程:错误:android/java_pid14920.hprof 文件的大小为301.75 MB;这超出了 GitHub 的文件大小限制(100.00 MB)。

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


你能找到一个解决方案吗? - FreakyCoder
1
简短的回答是肯定的。您可以(而且可能应该)删除堆转储文件(.hprof)。更多信息请参见Oracle文档 - KeshavDulal
6个回答

48

这里唯一的答案不适用于我,但我找到了一个解决方案。

我的错误文件是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 - David Biggs
3
非常感谢,这是对我最有用的答案。 - sanjeev shetty
请问如何将*.hprof添加到.gitignore文件中?我有4个hprof文件,是都要加入到gitignore中吗? - zedArt
前往".gitignore"文件只需添加以下片段。*.hprof保存.gitignore文件。 - David Biggs

31
这似乎是一个堆分析输出文件,您可能根本不想将其放在代码库中。您需要从整个历史记录中删除它,并且可能要添加一个条目到 .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。

8

我运行了这个命令。它可以在Windows 10上正常工作。

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

5

@bk2204 的答案对我有用。 在我的情况下,.hprof 文件在 android/hprof 目录中。

  1. 转到“.gitignore”文件

  2. 只需加入此代码片段。

android/

*.hprof

  1. 保存 .gitignore 文件。

我已经手动删除了hprof文件。 然后我运行了git clean -f, 并尝试再次推送。 但是,我一直收到错误消息。 有什么解决方法吗? - sj_959
但是提交已经完成了,将其放入.gitignore文件中将在下一次提交时生效。 - sanjeev shetty
我的问题是由于hprof文件过大,我无法提交。因此,在提交之前,我加入了这行代码,然后就成功了。 - Hyeonmin

5

我提交了两个hpprof文件; 因此,我只需运行这个命令,这些文件就会被成功删除。

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

1

这对我有用

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接