【发布时间】:2011-02-16 23:39:15
【问题描述】:
我有一个 33 MB 的大文件,我想永久删除该文件的最旧版本,因此我只保留最新的 X 版本。怎么做?
我的裸存储库因此变得庞大。
我尝试了以下..但它完全删除了文件
git filter-branch --index-filter 'git rm --cached --ignore-unmatch big_manual.txt' HEAD
为了识别存储库中的大文件,我使用git-large-blob by Aristotle Pagaltzis。
【问题讨论】:
-
我认为如果您提供有关此文件以及您正在尝试做什么的更多信息会有所帮助。这将是一次性事件还是您打算定期清除文件并重写存储库历史记录?如果您不需要保留其历史记录,为什么要在 git 中跟踪文件?您的裸存储库有多大,如果它很大,真的有问题吗?
-
这是我的程序手册,我使用 Apple Pages(文字处理器)编写,其中包含大量图像。我主要将它存储在 GIT 中,以便我可以在我的固定计算机和我的笔记本电脑之间共享它,所以我会在出现问题时撤消它。存储库当前为 450 MB。我对使用该文件犹豫不决,因为我知道存储库大小会增加。我认为最好摆脱最旧的修订版,而不是重新考虑我的备份解决方案。我每天拍摄存储库的完整快照并上传,但磁盘配额为 3 GB。
-
是的,我希望可以不时这样做。
-
假设您的存储库的其余部分是“正常”代码,那么我认为您应该重新考虑跟踪此文件以及我们的其余代码。它会导致您的存储库的大小增加,如果这会导致您拒绝更改它或迫使您一直重新定位最近的分支,那么它可能会迫使您进入一个非常痛苦的工作流程。
-
它不仅仅是这个文件,我还跟踪了一些属于项目的网站的图像,这些会很好地擦除一些历史。我的项目有 1000 多个文件(h/cpp/mm、png、xml、rb、php),并且将所有内容放在一个地方会很好。我已经将它分成了 4 个存储库,但是它们都通过版本号相互引用。进一步拆分它并为我不感兴趣的未跟踪文件制定备份解决方案。
标签: git