簡體   English   中英

git reset在回滾到上一個提交時出現問題

[英]Problem with git reset on rolling back to the previous commit

我無意中提交了不需要的巨大文件夾,並將其推入git的主目錄。 之后,我又提交了一個。 所以它是這樣的

A B C D

C-是有問題的提交

意識到錯誤后,我使用了命令

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

git push origin HEAD --force

可以回滾到B。這很好,但是倉庫的大小仍然相同。 我很困惑。 我如何才能永久刪除不需要的文件,因此它不會出現在git上?

即使您以這種方式向后移動分支指針, git也不會立即垃圾收集現在不再被引用的對象。 這是一件好事-例如,這意味着,如果您錯誤地執行git reset --hard ,則可以輕松恢復舊的提交,通常可以使用reflog查找這些提交的對象名稱,然后創建一個從其中之一分支。 如果您真的想立即進行垃圾回收以回收空間,則可以執行以下操作:

git gc --prune=now

但是,幾乎沒有人需要這樣做...

使用http://git-scm.com/docs/git-filter-branch ,但后果自負!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM