【问题标题】:How to use bfg-repo-cleaner after Git rebase on non-bare repo?Git rebase 非裸仓库后如何使用 bfg-repo-cleaner?
【发布时间】:2017-02-19 22:45:19
【问题描述】:

概述

我有 Git 存储库,它作为来自其他地方的许多配置的存档:

  • 200 个目录
  • 每个目录 100 个文件
  • 每个文件 10K 纯文本
  • 每天~1000 次提交,通常编辑
  • 1 个分支
  • 1 个用户处理所有提交
  • 只读的所有其他视图存储库

在有人建议我尝试将这个 repo 分解成更小的 repo 之前,这不是一个选择,因为客户。

回购包含价值约 2 年的数据,但我们的客户只需要过去 90 天。

流程

我在 90 天前使用here 描述的方法成功地将根移植到了提交上:

  • git checkout -b newroot xyz_90_days_old_rev
  • git reset abc_original_root_rev
  • git 添加。
  • git commit --amend -m '清除历史'
  • git checkout master
  • git rebase --onto newroot xyz_90_days_old_rev

问题是之后使用 git-filter-branch 清理 - 这需要超过 24 小时,这对用户来说是不可接受的停机时间。

我想改用 bfg-repo-cleaner,但我不清楚:

  • 它支持这个用例吗?
  • 它是否适用于非裸仓库?

PS:我现在知道git checkout --orphan 会稍微优雅一些​​,但这并没有真正改变BFG 要求repo 裸露而checkout 要求的问题它不是裸露的

【问题讨论】:

    标签: git rebase bfg-repo-cleaner


    【解决方案1】:

    不要费心重写 repo。如果有人只需要最后 90 天,运行一个脚本来估计所需的深度,并让他们使用--depth <depth> 创建一个浅层克隆。

    BFG 应该在镜像/裸克隆上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2023-03-12
      • 1970-01-01
      • 2018-02-23
      相关资源
      最近更新 更多