git大文件包,删除和重写?

git大文件包,删除和重写?,git,Git,我有一个相对较小的git存储库,其中包含一个标准Wordpress安装。但是,我意外地在存储库中添加了一个“concept”文件夹,其中包含许多大型psd文件 问题是,现在在提交50次之后,git创建了一个1,3 GB的“pack”文件 要缩小文件包文件夹,我尝试通过以下方式删除我的“概念”文件夹: git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch DIRECTORY/' --prune-empty --

我有一个相对较小的git存储库,其中包含一个标准Wordpress安装。但是,我意外地在存储库中添加了一个“concept”文件夹,其中包含许多大型
psd
文件

问题是,现在在提交50次之后,git创建了一个1,3 GB的“pack”文件

要缩小文件包文件夹,我尝试通过以下方式删除我的“概念”文件夹:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch DIRECTORY/' --prune-empty --tag-name-filter cat -- --all
然后呢

git gc --aggressive --prune
执行这些命令后,我的“concept”文件夹已从文件系统和所有提交中删除,但包文件仍正好为1,3 GB

我还可以做些什么来减小pack文件夹的大小吗?

我在前面提到过

我列出的命令是:

# remove the temporary history git-filter-branch otherwise leaves behind for a long time
rm -rf .git/refs/original/ && git reflog expire --all &&  git gc --aggressive --prune=now
如果这不起作用,请查看

您将在“”中找到更完整的gc

建议采用类似的方法:

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git fsck --full --unreachable
git repack -A -d
git gc --aggressive --prune=now

我用了你的命令。输出为:计数对象:10666,完成。增量压缩最多使用8个线程。压缩对象:100%(10425/10425),完成。书写对象:100%(10666/10666),完成。总计10666(增量3292),重复使用7374(增量0),但无任何变化。包文件还是1.3 GB我的问题不是我的repo中有很大的文件。我只想从它和包文件中删除一个更大的文件夹。@AndreasGeibert您使用了上一次编辑(带有
git repack
)吗?我现在用两个命令都试过了。没有效果。包文件仍然是1,3 GB;(@AndreasGeibert你能检查一下你是否还有这个大文件吗?@AndreasGeibert这是应该做的。有没有其他信息可以添加到我的答案中(你只是“未选中”)?很遗憾,是的。我尝试了所有建议,并做了以下操作:--用“rm”过滤分支-git gc with prune=now和aggreative,我认为这必须真正起作用:什么也做不到。我可以清除所有不需要的文件和文件夹中的提交历史记录(例如,使用bfg工具),但我的包文件保持在1.13 GB。我联系了一些git专家和邮件列表。如果你克隆了你的“已清理”文件,那就没有什么好处了(仍然很大)将repo转换为新的repo,在新本地克隆的repo中仍然可以获得1.13 GB吗?我在“已清理”存储库上尝试了git克隆。新克隆中存在包文件,并且是..1.13 GB。问题似乎是:即使在清理repo之后,来自旧提交的文件也会存储在任何地方(但可能是哪里?该包文件?)。克隆时,任何提交中的所有文件都会被克隆。也许有一种方法可以在克隆之前删除“.gitignore”?我尝试在克隆之前重写.gitignore文件,但这也会被忽略。所有文件都会被克隆。