检索Git推送历史记录?

时间:2018-08-08 22:23:47

标签: git version-control azure-devops dvcs

Git是否记录到任何地方的远程推送历史?

我注意到,我们能够在Microsoft VSTS中查看Git存储库的推送历史记录以及每次推送相关的提交。它甚至显示旧的,过时的提交,由于后来重写了提交历史的强制推送,因此不再存在该提交。这是VSTS专门提供的附加信息,不是Git内置的吗?

2 个答案:

答案 0 :(得分:1)

这是因为VSTS的存储库未实现git gc。即使不再引用这些提交(例如由于强行推动),它们也仍然存在。

参考: https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/

答案 1 :(得分:1)

如果您要在下面的屏幕截图中谈论远程推送历史,则不确定我是否完全明白您的意思。

enter image description here

对于本地存储库,您可以查看以下线程:

  

实际上,当您执行git reflog expire --expire = now --all和   git gc --prune =现在,删除了danglind提交。你可以加倍   通过git fsck --full检查。如果输出未显示提交,则表示   表示没有悬空的提交。

但是您无法对远程git repo执行任何git命令,这应该由this引起,就像Daniel也在上面提到的那样:

  

我们将提交可达性位图索引推出到VSTS并删除了   下面提到的克隆作弊。克隆将不再下载   无法到达的物体!我们仍然没有真正的对象级git gc   服务器,但克隆大小现在会更小。

     

本地TFS将在v.Next中获得这些更改(不适用于任何TFS 2017   更新,但是下一个主要版本)。

相关问题