gpt4 book ai didi

git - 挤压 git 历史

转载 作者:太空狗 更新时间:2023-10-29 14:09:32 27 4
gpt4 key购买 nike

我有一个大型的旧 git 存储库,其中包含许多托管在本地 Redmine 服务器上的二进制文件。我想将特定日期(6 个月或 12 个月前)之前的所有评论压缩在一起,以节省一些我的 repo 协议(protocol)的大小。

有办法吗?

最佳答案

任何时候您更改任何历史记录,更改后的所有提交都将具有新的 SHA1 总和。如果只有你在使用 repo,或者你可以轻松地与之交流的特定人群,那么你可以安全地压缩或过滤(见下文)以清理历史记录,然后当他们获取时,他们需要手动重置他们所有的分支机构负责人都交给了新的负责人。如果这不是情况,那么不幸的是,您将不得不忍受它。历史一经公布,不可更改。

现在,您可以使用 git rebase 删除提交。这是缓慢而痛苦的,但它可以工作。您还可以使用 git filter-branch 删除所有二进制文件。我必须自己在 repo 协议(protocol)上做这件事,这很容易。如果您所有的二进制文件都在一个目录中,那么您可以使用 git filter-branch 的 --subdirectory 标志(当然,请阅读帮助页面)从给定范围内的所有提交中删除该子目录中的所有内容.如果它们是分散的,那么你可以给 git filter-branch 一个 shell 命令行,或者一个在每次提交时执行的 shell 脚本,该脚本可以通过并删除二进制文件以及你想要删除或更改的任何其他内容.再次查看帮助页面。但我认为 git filter-branch 绝对是解决这种情况的方法。

关于git - 挤压 git 历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378249/

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