我有一个超过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) –