VSTS Git对象计数远大于预期

时间:2018-05-30 09:22:26

标签: git azure-devops

我是GIT和Visual Studio Team Services(VSTS,基于云的Team Foundation Server免费版)的新手,我最近刚开始将它用于我们的网站开发。

我担心创建一个版本所花费的时间,检查文件需要花费几分钟,我猜是因为它试图处理大量的对象?对象计数状态为23,909?我在存储库(excl .git文件夹)上完成了一个TreeSize,它显示了以下内容?

也尝试了git gc --aggressive --prune,但这并没有减少文件数量。

可能存储库中存有大量图像文件但我很确定它们已被删除,因为它们没有在git或VSTS网站上显示?

很高兴有任何帮助!

enter image description here enter image description here

对于那些感兴趣的人,这是我上次发布的日志。

https://codeshare.io/5w0qop

1 个答案:

答案 0 :(得分:0)

可能没什么好害怕的,因为git对象用于存储文件,树和提交对象的所有历史记录。

您可以查看git sizer以更好地查看/计算存储的对象。它可以为您提供存储库大小(文件大小或数量)的提示。

如果您需要清理历史记录(但首先要真正了解其含义!),您可以查看BFG repo cleaner这是一个非常好的工具......

此外,我不确定您的本地对象计数是否代表了其中一个存储库(除非您执行了新的克隆)。

你肯定有很多你在本地创建的对象。

  

还尝试了git gc --aggressive --prune,但这并没有减少文件数量。

还有一个很好的理由说明它不会缩小尺寸。那是因为reflog保留了很多对象(一本允许修复错误的日志!)。

因此,如果您真的想清除无用的对象,则需要先使用以下方法清除reflog:

git reflog expire --expire=now --all 
  

我担心创建一个版本所花费的时间,检查文件需要花费几分钟,我猜是因为它试图处理大量的对象?

每次在新VM上构建VSTS,因此每次都应该克隆整个存储库:(而不是仅仅获取差异。

如果您不需要整个历史记录(除非您根据git历史记录计算版本,大多数情况下都是这种情况),您可能应该通过将depth设置为1来进行浅层克隆在您的构建的VSTS git存储库设置中。它将获取更少的对象。

PS:你想用TreeSize完全展示什么?只是你只有3415个文件?