在Git中转储二进制文件并还原?

时间:2014-12-10 08:46:44

标签: git binaryfiles git-rewrite-history

假设我在git存储库提交和推送中添加1 GB影片。接下来我恢复我刚刚推送的提交并推送它。现在最新的磁头不再包含1 GB文件。

即使我只是还原了提交是否正确,1 GB文件现在永远是git历史记录的一部分?这意味着即使我正在使用没有1 GB文件的最新磁头,repo仍然大1 GB并将永远保留下来?

1 个答案:

答案 0 :(得分:3)

  

即使我只是还原了提交是否正确,1 GB文件现在永远是git历史记录的一部分?

是的,回购将保持很大:版本控制系统将保留历史记录。

您需要过滤其历史记录并进行清理(使用git filter-branchBFG)以减小其大小(并且会改变其历史记录)

另外,正如" How to update/shrink the size of my github repo after running BFG Repo Cleaner"中所述,您需要在过滤器之后:

git reflog expire --expire=now --all
git gc --prune=now --aggressive