2016-12-05 74 views
1

我偶然在BitBucket上提交了一个大文件。在低RAM嵌入式系统上克隆存储库会导致内存不足异常。删除BitBucket上的大文件

我会从服务器上删除大文件,或在提交之前将历史记录本地导出到修订版本,然后再次将其重新推送到BitBucket。

如何做到这一点?

问候, 安东尼

+1

这是提交你的分支上的最后一个提交? – LeGEC

+0

不,这是在历史的中间,但我解决了下面的方法! –

回答

1

这里是到位桶的解决方案:

您应该能恢复到一个承诺在此之前, 介绍了该文件,该命令的一个:git的复位 - -hard HEAD〜N其中N 是你想要回头的提交次数。请注意0​​这是一个破坏性操作,并且它会永久删除 提交,所以我强烈建议您在执行此命令之前在回购之前进行备份。接下来,您可以强制 在远程回购中推送您的更改:git push --f如果此文件 被推送了很多提交,并且您不想删除这些提交并在其他文件中更改 由他们介绍,你也可以 想要考虑使用BFG从git历史中删除此文件: https://rtyley.github.io/bfg-repo-cleaner/ BFG也会重写您的历史记录 ,但不是删除提交,而是简单地将 更改为删除此大文件从他们。同样,在这种情况下,建议备份 。

编辑:我收到到位桶/ Atlassian的工作人员https://confluence.atlassian.com/bitbucket/maintaining-a-git-repository-321848291.html的官方链接。

+1

基于filter-branch子命令的解决方案对于重写所有或部分历史记录以及从所有提交中删除特定文件非常有帮助 – Antwane

+0

当然,它解决了我的问题,但在最终推送时要小心。我没有写出你必须发出命令“git push -all”,否则你只会重写MASTER分支的历史,失去其他人。 –