首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >过期孤儿git替换参考文献

过期孤儿git替换参考文献
EN

Stack Overflow用户
提问于 2022-06-04 07:48:30
回答 2查看 77关注 0票数 1

我们在一个私人托管的Git-Lab实例上有一个大型存储库。一年前,这种回购是从另一家公司迁移而来的,git历史在迁移中被改写了各种原因,还安装了额外的git-替换参考资料,以便与旧的文档引用兼容。

以前,有数百个试验性分支,其中许多从未合并,最终一文不值,老开发人员懒得把它们移除。从那时起,新回购的分支机构就被清理干净了,但据报道,它在GitLab中的规模仍显示出许多千兆字节。这是没有意义的,一个新克隆的git&git-gc‘’ed存储库将只占用该空间的一半。

在GitLab配置中按下“家政”功能并不能修复它,其大小几乎与移除实验分支之前的大小相同。我唯一的解释是旧的git-替换引用的存在,它仍然显示在一些提交数据上,尽管这些数据现在应该已经消失了。

亲爱的互联网,有什么好办法

  1. 自动检测这类git-替换引用,该引用指向任何分支头不再覆盖的提交,以及
  2. 在服务器上显式地删除它们?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-04 11:50:14

Git在这方面没有内置的任何东西,主要(我想)是因为很明显,“孤儿”的定义是在旁观者的眼里。因此,您需要编写自己的程序/脚本,以确定哪一种替换引用来丢弃。

请注意,如果您愿意在每个人从“旧回购”切换到“新回购”时使用旗日,则可以使用git filter-branch (旧的、过时的但仍然有效)或git filter-repo (尚未与Git发行版一起分发的热门新方法)来构建一个存储库,在该存储库中,所有的替换都会完成到一个全新的历史中。这要容易得多,除了旗标日之外,当然,由于新历史有新的散列is,基于原始散列is的任何东西都会停止工作。

票数 2
EN

Stack Overflow用户

发布于 2022-06-04 16:10:04

  1. test -z输出git -P branch -a --contains <named-ref>
  2. 使用:将指定的ref推送到服务器。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72498019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档