2011-08-25 102 views
1

我意外地犯了這個龐大的不需要的文件夾,並將它推送到git中的主文件夾。那之後我又有一次承諾。因此其像這樣Git重置回滾到前面的提交時出現問題

甲 - B - C - d

Ç - 是有問題的提交

實現我使用的命令

git reset --hard <sha1-commit-id-of-B> 

git push origin HEAD --force 
錯誤後

回滾到B.這很好,但回購的大小仍然相同。我很困惑。我怎樣才能擺脫不需要的文件(永久),所以它不會出現在混帳?

回答

3

即使以這種方式移回分支指針,git也不會立即垃圾收集現在不再被引用的對象。這是一件好事 - 例如,這意味着如果您錯誤地執行了git reset --hard,那麼您可以輕鬆恢復舊的提交,通常通過使用reflog來查找這些提交的對象名稱,並從以下其中一個創建分支他們。如果你真的想垃圾立即收集到回收空間,你可以這樣做:

git gc --prune=now 

然而,幾乎沒有需要做到這一點...

+0

感謝馬克,這就是我所需要的。它的解除,我不需要手動垃圾收集,我會讓git做到這一點.. :) – RameshVel