gpt4 book ai didi

git - 从 git 历史记录中删除未使用的 Assets

转载 作者:太空狗 更新时间:2023-10-29 14:45:58 25 4
gpt4 key购买 nike

所以,我整个上午都在寻找执行此操作的正确方法,但我不是那种精通命令行的人。

我有一个包含大量 Assets 的 git 存储库。这就像大罪,我知道。

repo 已经变得太大了。我想清理它,以便我可以通过编程方式从整个 repo 历史中删除 HEAD 中不再存在的所有文件。我已经看到了执行此操作的方法,您可以在其中指定文件路径,但实际上,我说的是从我们的最终产品中删除的 1000 多个文件,我真的不想再在我的 repo 中了。

更新:我已经清理了所有不应该存在的 Assets 的 repo 协议(protocol)。我现在真的只有源代码和一些应该存在的 Assets 。我真的很想保留所有源代码的所有历史记录……所以我真的很想从历史记录中删除已删除的文件,同时保留当前存在的历史记录。这就是目标。我很确定可以使用 git filter-branch 来完成 - 但我只是不太了解它。

最佳答案

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

so I can programmatically remove all files that do not exist in HEAD anymore from the entire history of the repo

默认情况下,BFG 会“保护”您的 HEAD 提交中的所有文件,但会删除符合您的条件的其他文件。

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

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

任何大小超过 1MB 的文件 - 在你的最新提交中 - 将从你的 Git 存储库的历史记录中删除。如果您有普通的、小于 1MB 的源文件,您仍然想要删除,您可以使用 --delete-files- 指定它们-删除文件夹 选项。

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

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

关于git - 从 git 历史记录中删除未使用的 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233093/

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