Git 我如何删除由于repo中的一个大文件(该文件已被删除)而导致的未推送提交?
我是git的初学者。我的repo有简单的MATLAB代码文件。我犯了一个错误,将一个大文件上传到repo(>100MB)。之后,我使用了以下命令Git 我如何删除由于repo中的一个大文件(该文件已被删除)而导致的未推送提交?,git,git-commit,Git,Git Commit,我是git的初学者。我的repo有简单的MATLAB代码文件。我犯了一个错误,将一个大文件上传到repo(>100MB)。之后,我使用了以下命令 git add --all git commit --all --message "Moar" git push --all push命令引发了以下错误: 远程:错误:GH001:检测到大文件。你可能想试试Git 大文件存储-。 远程:错误:跟踪:47cf7a12aa48e59e3007901d70e3843b 远程:错误:有关详细信息,请参阅。
git add --all
git commit --all --message "Moar"
git push --all
push命令引发了以下错误:
远程:错误:GH001:检测到大文件。你可能想试试Git
大文件存储-。
远程:错误:跟踪:47cf7a12aa48e59e3007901d70e3843b
远程:错误:有关详细信息,请参阅。
远程:错误:文件prepo/workbench-windows64-v1.3.2/workbench/bin_windows64/rfMRI_REST1_LR_Atlas.dtseries.nii
是418.46MB;这超出了GitHub的100.00 MB文件大小限制
...
! [远程拒绝]主机->主机(拒绝预接收挂钩)
然后我惊慌失措,删除了上面导致错误的大文件。但是现在,当我试图向我的主人施压时,我仍然会犯同样的错误
这些大文件不再存在于我的本地回购中。那为什么git不让我推?此外,发生这种情况后,我在本地回购中做了一些更改,因此如果没有这些大文件,我无法恢复到最近的提交
有没有办法让git知道大型文件不再存在于repo中,从而干净、准确地做到这一点?既然您是初学者,请阅读此答案,它将为您提供大量信息。
为了从旧提交中删除内容,我建议使用以下工具: 它是完成这类任务的完美工具 BFG回购清洁剂 git过滤器分支的替代方法 BFG是git filter分支的一种更简单、更快的替代方法,用于清除git存储库历史记录中的不良数据:
- 删除疯狂的大文件
- 删除密码、凭据和其他私有数据
# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_{dsa,rsa} my-repo.git