从上一次提交的.git目录中删除文件

时间:2018-08-22 10:33:44

标签: git

我在charges.txt存储库中添加了64 MB大小的git文件,并做了commit(让git给了我commit哈希 id x )。
在上述commit之后,我还对git存储库进行了约20次提交,每个commit中都有不同的更改。

现在,我发现我已将错误的charges.txt文件添加到git存储库中。 我已使用git rebase交互式删除了我以前的commit id x ,但是我注意到文件已从我的工作目录中删除,但并未从{{1 }}目录,因为.git文件夹的大小在我的.git之前和之后几乎相同。

请为我建议从git rebase完全删除文件的正确方法,以减小我的存储库大小吗?谢谢。

2 个答案:

答案 0 :(得分:1)

想象一下,您意外删除了文件和提交。 Git仍然可以通过将提交保持一定的时间(默认时间为90天)来撤消错误。这是一件好事。

您可以使用以下命令编辑有效期:

git reflog expire --expire=time

Git定期运行垃圾回收,清理存储库并对其进行优化。手动运行垃圾收集被认为是不好的做法,如果您不能完全确定自己知道自己在做什么,我建议您不要做。最终将显示64mb空间。如果您仍然想删除该提交,请尝试以下操作:

git reflog expire --expire-unreachable=now --all
git gc --prune=now

答案 1 :(得分:0)

BFG Repo Cleaner应该可以解决您的问题。像这样使用它:

,

但是要小心,请先备份您的仓库。