在 "archived" 的许多分支之后清理大型 pack-refs

Clean large pack-refs after many branches where "archived"

我最近“归档”(创建 archive/tag 并删除分支 - 在 How can I archive git branches? 之后)一大组分支。

但是,这并没有解决我的一个问题,那就是我必须在 when performing some action (here: merge: 中滚动浏览大量行。

我在 Tortoise 中看到了所有这些分支,即使它们没有在本地或远程使用 git branch -a 命令显示:

问题

如何在不必克隆整个存储库的情况下重置这组引用?

为了清理在远程端删除的远程跟踪引用,请使用修剪执行提取(参见 https://tortoisegit.org/docs/tortoisegit/tgit-dug-pull.html

仅供参考:TortoiseGit 执行 git.exe for-each-ref 列出所有引用,因此它们仍然存在于存储库中。

TortoiseGit 解决方案 运行良好。

我还找到了“普通 git 命令”解决方案:

  • 删除参考文件
  • 强制git到re-create它。

mv .git/packed-refs .git/packed-refs-bak
git fetch
git pack-refs --all