【问题标题】:Dumping binaries in Git and reverting?在 Git 中转储二进制文件并恢复?
【发布时间】:2014-12-10 08:46:43
【问题描述】:

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

即使我刚刚恢复了提交,1 GB 文件现在永久成为 git 历史记录的一部分是否正确?这意味着即使我正在处理没有 1 GB 文件的最新磁头,repo 仍然大 1 GB 并且将永远保持不变?

【问题讨论】:

标签: git binaryfiles git-rewrite-history


【解决方案1】:

即使我刚刚恢复了提交,1 GB 文件现在永久成为 git 历史记录的一部分是否正确?

是的,repo 仍然很大:创建了一个版本控制系统来保留历史记录。

您需要过滤它的历史并清理它(使用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

【讨论】:

  • 是否可以对 git repo 设置限制,使其无法提交/推送 *.zip、*.dll 文件?除了使用 .gitignore
  • @u123 你可以放置一个预接收钩子来过滤被推送的文件列表(有点像stackoverflow.com/q/2569960/6309
猜你喜欢
  • 1970-01-01
  • 2022-01-06
  • 2017-10-11
  • 2020-05-28
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多