我有一個超過3年的大型倉庫git,我想刪除一年多以前的更改歷史記錄。這可能嗎?可以使用git rebase但是如何?Git刪除歷史提交
回答
刪除歷史記錄可能無法解決您的問題。很可能,在某個時間點,一個大文件被提交到存儲庫並隨後被刪除。我想看看Find files in git repo over x megabytes, that don't exist in HEAD。
調查this article from the Pro Git book中稱爲git replace
的黑魔法,它以您的確切情況爲例。基本上,如果你可以在歷史中找到一個你想作爲新根的點,那麼你可以用一個沒有父母的提交來替代它,就好像它是在空氣中創建的一樣。您甚至可以將原始樹存儲在一臺機器上,如果您再次需要,可以輕鬆恢復歷史記錄。
請注意git rebase
(和git replace
,對於這個問題)的一個問題是,你想重寫整個樹,包括分支,所以它們都指向不同的提交。這也會導致團隊中的其他人難以合併他們的變化,因爲所有父母都有不同於以前的SHA。
從我讀的,''git replace'' thingy不會在改變哈希的問題上工作。 –
@Jonas你是對的。重構我的答案以便清楚。 –
太棒了!它也會是git中的一個巨大bug你可以在不改變哈希的情況下替換一大堆歷史記錄。畢竟,這些加密哈希是使用git的原因之一。 –
- 1. 刪除提交歷史git的
- 2. Git - 從提交歷史中刪除種子回購的歷史
- 3. 刪除Github提交歷史記錄
- 4. 刪除GitHub的提交歷史記錄?
- 5. 在歷史中刪除一些提交
- 6. 刪除/摺疊git歷史
- 7. Git刪除遠程歷史
- 8. Git/Bitbucket - 從整個歷史記錄中刪除文件/提交
- 9. 完全從Subversion歷史記錄中刪除空的git提交
- 10. 從歷史中刪除舊的Git提交?
- 11. 使用egit插件從git提交中刪除歷史記錄
- 12. 刪除歷史記錄中的第一個git提交
- 13. 從git歷史記錄中刪除提交(永遠)
- 14. Git - 刪除上次提交(歷史改寫)
- 15. 如何在提交後刪除本地git歷史記錄?
- 16. Git:從歷史記錄中刪除替換文件的提交
- 17. Git從歷史記錄中刪除重複的提交
- 18. 從git歷史記錄中刪除提交
- 19. 如何從GitHub上的提交歷史中刪除提交?
- 20. 再次基於Git的提交歷史
- 21. 重寫GIT中提交歷史
- 22. Git:修改歷史提交的內容
- 23. Git - 分支提交歷史重複
- 24. Git合併沒有歷史提交
- 25. Git提交歷史與文件歷史不同步?
- 26. Git - 刪除提交
- 27. 確實git重置刪除歷史?
- 28. 從歷史Git刪除合併
- 29. 的Git從歷史刪除文件,而不用複製預分支提交
- 30. 如何清理git歷史記錄刪除某些提交後被推送?
Git用於保存您的更改。刪除歷史有什麼影響? –
我的歷史是它太大,.git目錄大於400 MB,在每一個克隆我必須下載所有這些歷史:( – paweb
可能的重複:[我如何從git存儲庫中刪除舊的歷史?](http:///stackoverflow.com/questions/4515580/how-do-i-remove-the-old-history-from-a-git-repository) –