The BFG 回购清理器 https://rtyley.github.io/bfg-repo-cleaner/网站给出了使用该工具清理存储库的示例,如下所示:
-
克隆您的存储库的新副本。
$ git clone --mirror git://example.com/some-big-repo.git
-
运行 BFG 来清理你的仓库。
$ 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
我知道 head 分支受到保护,因此 head 分支中大于 100M 的任何文件仍然存在。如果我按照描述运行此工具,我将丢失上述 100M 文件的任何历史记录,对吗?因此,如果旧提交中有该文件的旧版本,它就会消失,我将无法在以前的状态下使用它......正确吗?
另外,我有一个同事说了以下内容,我想知道这是否属实:
如果您推回到 TFS 中镜像的存储库,对包文件的更改将不会反映在远程和未来的克隆上
您必须在 TFS 中创建一个新存储库并将镜像推送到那里,以便远程选择包文件更改。
仍然存在于存储库头部的任何文件都将被保留,包括历史记录。这是为了保护你不犯错误。这个想法是,您应该显式删除该文件,提交删除,然后清理历史记录以将其删除。
TFS 没有gc
它的回购协议;你的同事是对的。看Team Foundation Server 2015 (tfs2015) 在 org/remote 上运行 git gc --prune=now https://stackoverflow.com/questions/32277248/team-foundation-server-2015-tfs2015-run-git-gc-prune-now-on-orgin-remote确认。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)