删除分支后测试Git回购规模缩减
我有没有办法测试删除几个分支会如何影响git回购的规模。 我有一个git回购协议,有10个有效分支和数百个功能(短期分支) 回购协议非常庞大,克隆速度也很慢。GitLab显示总大小为1.4GB,显示blob总大小为8.4GB 我尝试过一些工具,比如删除不需要的历史记录,但我只设法将1.4 GB减少到1 GB,这还不够 我的策略是将回购分成两部分,并使用多个分支来分离工作流程。我还将在GitLab中添加推送扩展和大小限制,以停止推送垃圾。我们遇到了.rar、.zip、.jar文件、错误推送的个人备份等问题。 然而,我也想知道,我是否能保留我长寿的分支机构的历史。 所以我的问题是:删除分支后测试Git回购规模缩减,git,bfg-repo-cleaner,git-gc,Git,Bfg Repo Cleaner,Git Gc,我有没有办法测试删除几个分支会如何影响git回购的规模。 我有一个git回购协议,有10个有效分支和数百个功能(短期分支) 回购协议非常庞大,克隆速度也很慢。GitLab显示总大小为1.4GB,显示blob总大小为8.4GB 我尝试过一些工具,比如删除不需要的历史记录,但我只设法将1.4 GB减少到1 GB,这还不够 我的策略是将回购分成两部分,并使用多个分支来分离工作流程。我还将在GitLab中添加推送扩展和大小限制,以停止推送垃圾。我们遇到了.rar、.zip、.jar文件、错误推送的个人备
回答你的三个问题,我会说是的,可以在本地检查。(取决于你所说的如果我删除了所有短期分支,我将假定它们没有合并) 您可以克隆repo,为要保留的分支创建本地分支,删除远程分支,并主动执行gc 然而,我认为这不会像使用BGF repo cleaner删除大型二进制文件那样有帮助。如果您需要跟踪所述二进制文件,则应切换到git LFS以获取这些文件
您使用BGF的经历似乎很奇怪,如果您正确清理回购协议,我会期望更好的降价。回答您的三个问题,我会说是的,可以在本地检查这一点。(取决于你所说的如果我删除了所有短期分支,我将假定它们没有合并) 您可以克隆repo,为要保留的分支创建本地分支,删除远程分支,并主动执行gc 然而,我认为这不会像使用BGF repo cleaner删除大型二进制文件那样有帮助。如果您需要跟踪所述二进制文件,则应切换到git LFS以获取这些文件
您使用BGF的经历似乎很奇怪,如果您正确清理了回购协议,我希望能得到更好的降价。我只想发布我在上午回答时采取的步骤: 因为回购协议有近600家分支机构,我想测试删除近350家分支机构的效果
git remote rm origin
然后我再次运行了git remote-v
,但没有返回任何结果,以检查删除是否成功
运行
git gc
后,回购规模减少了约600 MB,git sizer显示了类似的减少。我只想发布我在上午回答时采取的步骤。答案:
因为回购协议有近600家分支机构,我想测试删除近350家分支机构的效果
git remote rm origin
然后我再次运行了git remote-v
,但没有返回任何结果,以检查删除是否成功
运行
git gc
后,回购大小减少了约600 MB,git sizer显示出类似的减少。分支已经合并,它们大多是过时的功能分支。我不得不多次运行BFG(有时使用相同的参数,因为它会发现更多要删除的参数)按文件名、blob ID等进行删除。我看到它大大增加了提交的数量,但只清理了大约400 MB。我可能会更积极地处理我想删除的内容。但我真的很想重新开始,因为这可能是实现所需尺寸缩减的唯一途径。由于这些是远程分支,因此我需要在本地签出所有分支?如果它们已合并,您将无法在保留历史的同时删除它们。干净状态下当前代码的大小是多少?(制作回购协议的本地副本,删除所有非
git branch | grep -v "main_" | xargs git branch -D
git remote -v
git remote rm origin
git reflog expire --expire=now --all && git gc --prune=now --aggressive