我意外地犯了這個龐大的不需要的文件夾,並將它推送到git中的主文件夾。那之後我又有一次承諾。因此其像這樣Git重置回滾到前面的提交時出現問題
甲 - B - C - d
Ç - 是有問題的提交
實現我使用的命令
git reset --hard <sha1-commit-id-of-B>
和
git push origin HEAD --force
錯誤後
回滾到B.這很好,但回購的大小仍然相同。我很困惑。我怎樣才能擺脫不需要的文件(永久),所以它不會出現在混帳?
我意外地犯了這個龐大的不需要的文件夾,並將它推送到git中的主文件夾。那之後我又有一次承諾。因此其像這樣Git重置回滾到前面的提交時出現問題
甲 - B - C - d
Ç - 是有問題的提交
實現我使用的命令
git reset --hard <sha1-commit-id-of-B>
和
git push origin HEAD --force
錯誤後
回滾到B.這很好,但回購的大小仍然相同。我很困惑。我怎樣才能擺脫不需要的文件(永久),所以它不會出現在混帳?
即使以這種方式移回分支指針,git
也不會立即垃圾收集現在不再被引用的對象。這是一件好事 - 例如,這意味着如果您錯誤地執行了git reset --hard
,那麼您可以輕鬆恢復舊的提交,通常通過使用reflog
來查找這些提交的對象名稱,並從以下其中一個創建分支他們。如果你真的想垃圾立即收集到回收空間,你可以這樣做:
git gc --prune=now
然而,幾乎沒有需要做到這一點...
http://stackoverflow.com/questions/1904860/how-to-remove-unreferenced-blobs-from-my-git-repo/1905159#1905159 – W55tKQbuRu28Q4xv
感謝馬克,這就是我所需要的。它的解除,我不需要手動垃圾收集,我會讓git做到這一點.. :) – RameshVel