【发布时间】:2019-01-16 07:07:51
【问题描述】:
Git 是否会记录推送到任何地方的远程的历史记录?
我注意到,我们能够在 Microsoft VSTS 中查看 Git 存储库的推送历史记录以及每次推送的相关提交。它甚至显示旧的、过时的提交,由于后来的强制推送重写了提交历史,这些提交不应该再存在了。这些附加信息是 VSTS 专门提供的,而不是 Git 内置的吗?
【问题讨论】:
-
不能是通过
pre-push钩子自动化的一些标签吗?标记提交确实可以防止垃圾收集和历史重写。值得检查 ref/tags 吗?在这种情况下,VSTS 只是保留对标签本身的内部引用是有道理的 -
Git 本身没有(记录推送操作——从技术上讲,就 Git 本身而言,这些只是
git receive-pack调用,通过 ssh 或 Web 服务器或其他方式运行)。各种附加组件可能。 -
@ohitsderrick,你这边的这个问题呢?你解决了吗?
-
@JackZhai-MSFT 我认为 Daniel 下面关于
git gc未实施的回答解释了我所看到的。我从在本地克隆上运行git gc的不同线程读取 this answer,删除 VSTS 上的整个远程存储库,然后推回最近清理的本地存储库将是清理过时对象的唯一方法。
标签: git version-control azure-devops dvcs