我想将项目推送到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
我想删除此文件安全吗?
答案 0 :(得分:4)
@bk2204 答案对我有用。 就我而言,.hprof 文件位于 android/hprof 中。
转到“.gitignore”
把这个片段放上就行了。
安卓/
*.hprof
答案 1 :(得分:2)
这里唯一的答案对我不起作用,但是我找到了一个可行的解决方案。
我的冒犯文件是android/java_pid2325.hprof
,但您的文件显然可能有所不同。我使用了git filter-branch
:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch android/java_pid2325.hprof'
确保将*.hprof
添加到您的.gitignore
并推送提交。
答案 2 :(得分:1)
我提交了两个 hpprof 文件; 所以我只运行了这个命令,文件已经成功删除了。
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch android/java_pid21295.hprof android/java_pid16516.hprof'
答案 3 :(得分:1)
我运行了这个命令。它适用于 Windows 10
git filter-branch -f --index-filter "git rm --cached --ignore-unmatch android/java_pid10213.hprof"
答案 4 :(得分:0)
这听起来像一个堆概要分析输出文件,您可能根本不需要在存储库中。您可能希望将其从整个历史记录中删除,并可能在.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-branch
或bfg
之类的工具来过滤掉不需要的大对象。
请注意,这样做将重写所有中间提交的历史记录,并更改其对象ID。