BFG Repo Cleaner站点提供了一个使用该工具清理存储库的示例,如下所示:
克隆你的 repo 的新副本。
$ git clone --mirror git://example.com/some-big-repo.git
运行 BFG 来清理你的 repo。
$ java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
使用 git gc 去除不需要的脏数据
$ cd some-big-repo.git $ git reflog expire --expire=now --all && git gc --prune=now --aggressive
将更改推送回远程
$git push
我了解头分支受到保护,因此头分支中大于 100M 的任何文件仍然存在。如果我按照描述运行此工具,我将丢失所述 100M 文件的任何历史记录,对吗?因此,如果旧提交中有该文件的旧版本,它就消失了,我将无法在以前的状态下使用它....对吗?
另外,我有一位同事陈述了以下内容,我想知道这是否属实:
如果您推回在 TFS 中镜像的存储库,则对您的包文件的更改将不会反映在远程和未来的克隆上
您必须在 TFS 中创建一个新存储库并将镜像推送到那里,以便远程选择包文件更改。