gpt4 book ai didi

git - 如何从 Git 存储库的提交历史记录中移除/删除大文件?

转载 作者:行者123 更新时间:2023-12-05 07:25:04 25 4
gpt4 key购买 nike

我不小心将 DVD-rip 放到了一个网站项目中,然后不小心 git commit -a -m ...,然后,zap,repo 膨胀了 2.2 gigs。下次我做了一些编辑,删除了视频文件,并提交了所有内容,但压缩文件仍在存储库中,在历史记录中。

我知道我可以从这些提交开始分支并将一个分支 rebase 到另一个分支。但是我应该怎么做才能 merge 2 次提交,以便大文件不会显示在历史记录中并在垃圾收集过程中被清除?

最佳答案

使用 BFG Repo-Cleaner ,一个更简单、更快速的 git-filter-branch 替代方案,专门用于从 Git 历史记录中删除不需要的文件。

仔细遵循usage instructions ,核心部分就是这样:

$ java -jar bfg.jar --strip-blobs-bigger-than 100M my-repo.git

任何大小超过 100MB 的文件(不在您的最新 提交中)将从您的 Git 存储库的历史记录中删除。然后你可以使用 git gc 清除死数据:

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

剪枝后,我们可以强制推送到远程repo*

$ git push --force

*注意:不能在 GitHub 上强制推送保护分支

BFG 通常至少为 10-50x比运行 git-filter-branch 更快,而且通常更易于使用。

完全披露:我是 BFG Repo-Cleaner 的作者。

关于git - 如何从 Git 存储库的提交历史记录中移除/删除大文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55071927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com