我意外地提交了这个巨大的垃圾文件夹并将其推送到git中。之后我还有一次提交。所以就像这样
A - B - C - D
C - 是有问题的提交
在意识到错误之后我使用了命令
git reset --hard <sha1-commit-id-of-B>
和
git push origin HEAD --force
回滚到B.这很好,但回购的大小仍然相同。我很困惑。我怎样才能摆脱不需要的文件(永久),所以它不会出现在git上?
答案 0 :(得分:3)
即使以这种方式移回分支指针,git
也不会立即垃圾收集现在不再引用的对象。这是一件好事 - 例如,这意味着,如果您错误地执行git reset --hard
,那么您可以轻松地恢复旧提交,通常使用reflog
来查找这些提交的对象名称,并从其中一个创建一个分支。如果你真的想立即进行垃圾收集以收回空间,你可以这样做:
git gc --prune=now
然而,人们几乎不需要这样做......
答案 1 :(得分:0)