如何追溯历史,删除Git中意外提交和推送的大型二进制文件?

如何追溯历史,删除Git中意外提交和推送的大型二进制文件?,git,version-control,github,Git,Version Control,Github,我做了一个git pull--rebase,没有意识到它最终下载了一个本不应该被拉取的巨大二进制文件。我做了一个提交,并将我的工作与这个巨大的二进制文件一起推进 我需要回到过去,删除它,并在其他开发人员的推送上重播我的所有工作,还有其他推送到repo。我在另一家分店工作 这是个严重的问题,我一直在搞砸Git!想要一些不错的Git入门指南。看看Git过滤器分支。这将从您的本地回购中删除巨型对象 另一种方法是,如果您的违规提交是在5次提交之前,则使用git-rebase-i HEAD~5删除添加的g

我做了一个git pull--rebase,没有意识到它最终下载了一个本不应该被拉取的巨大二进制文件。我做了一个提交,并将我的工作与这个巨大的二进制文件一起推进

我需要回到过去,删除它,并在其他开发人员的推送上重播我的所有工作,还有其他推送到repo。我在另一家分店工作


这是个严重的问题,我一直在搞砸Git!想要一些不错的Git入门指南。

看看
Git过滤器分支
。这将从您的本地回购中删除巨型对象


另一种方法是,如果您的违规提交是在5次提交之前,则使用git-rebase-i HEAD~5删除添加的giant文件。用e将提交标记为“编辑”。当您到达那里时,取消存储并删除这个巨大的文件,提交并
git-rebase——继续。然后对分支执行强制推送
git-push-f原点
,或者如果分支跟踪正确,只需执行
git-push-f

查看
git过滤器分支
。这将从您的本地回购中删除巨型对象


另一种方法是,如果您的违规提交是在5次提交之前,则使用git-rebase-i HEAD~5删除添加的giant文件。用e将提交标记为“编辑”。当您到达那里时,取消存储并删除这个巨大的文件,提交并
git-rebase——继续。然后对分支执行强制推送
git-push-f,或者如果正确跟踪了分支,则只需执行
git-push-f

是否尝试还原上次提交并再次推送

git revert HEAD

您是否尝试恢复上次提交并再次推送

git revert HEAD

这个巨大的二进制文件最初是从哪里来的?你说是你拉的,是不是别人加的?你说你推了它,这是不是意味着你在本地修改了它并添加了它?请查看我的配置文件以获取各种Git资源。特别是,我强烈推荐,特别是第1-3章和第6-6.5章。另外,请学习如何以交互方式和非交互方式重新设置基址。这个巨大的二进制文件最初是从哪里来的?你说是你拉的,是不是别人加的?你说你推了它,这是不是意味着你在本地修改了它并添加了它?请查看我的配置文件以获取各种Git资源。特别是,我强烈推荐,特别是第1-3章和第6-6.5章。另外,请学习如何以交互方式和非交互方式重新设置
的基址。如果原始海报希望从历史记录中完全删除二进制文件,那么这样做是行不通的,它只会将其从将来的提交中删除,但在过去的提交中仍然存在。从历史记录中删除该二进制文件的唯一方法是使用硬的
重置
重基
,或
过滤器分支
。如果原始海报希望从历史记录中完全删除该二进制文件,那么这样做是行不通的,它只会从将来的提交中删除该二进制文件,但它仍然存在于过去的提交中。从历史记录中删除它的唯一方法是使用硬的
重置
重设基础
,或
过滤器分支