2011-06-15 88 views
2

有点奇怪的问题,但这里是我的场景:我不小心将一个带有大型嵌入式PNG的SVG图像添加到git中,提交并推送。昨天我注意到这个问题,并通过删除嵌入的PNG来解决这个问题,因此该映像的大小从1500kb变为35kb。我遇到的问题是我不再需要历史版本(占用1500kb的空间),但我需要在旧版本中存在一个映像(更新的映像)。所以我不想只是删除图像的历史,因为我希望旧版本仍然可以工作 - 我想要的是将新版本及时向后推送到我提交原始版本时,以便它像我从来没有犯过这么大的文件,只是正确的那个更小的文件而已。这可能吗?如何用git中的最新版本覆盖文件的历史修订版本?

我喜欢使用github托管存储库并需要推送更新的整个历史记录 - 这很容易吗?

回答

4

如果你还没有推动你的存储库给其他人,你可以轻松地用git rebase -i做到这一点。标记相关的提交进行编辑,然后根据需要替换图像文件。

See the docs for more details

您可以使用-f选项git push这将强制您编辑的历史覆盖在Github上。但请注意,这可能会让其他任何已经取消存储库的人变得有点混乱。

+0

谢谢,这似乎做我想做的,但其他人已经拉我推(错误是从几个月前)。我想我现在只会放弃它,但在未来很高兴知道这个作品,我应该在推动之前更好地检查我的附加内容。 – Daniel 2011-06-17 13:33:52

1

我认为你需要做一个相当混乱的操作,涉及挑剔,重新装订和一般的git wizardry。

我真的不会担心它。保持原状。这只意味着每次回购克隆时您都会下载一次额外的千字节。否则,你只是推拉微小的差异......

相关问题