什么可以使 gitversion 在同一分支上计算不同版本(本地与构建代理存储库)

Pre*_*gha 2 git tfs-2015 gitversion

我有一个已提交并同步到 TFS 2015 的分支。

在构建代理上运行构建时,执行的 gitversion 命令会计算不同的版本。

在本地,我根据标签 3.10.0.202 得到 3.11.0

本地仓库给出 3.11.0

在构建代理上我得到 0.1.0

构建服务器存储库给出 3.11.0

我觉得这种变化可能与克隆在构建代理上的完成方式有关。谁能建议这是否可能以及可能有什么区别?

注意

  • 构建代理只是目前在我的计算机上运行的 TFS 2015 构建代理。
  • 在没有 fetch 的情况下运行命令会产生相同的结果
  • 这是标签标签
  • 错误的版本号位于构建服务器上(通过 TFS 构建),但我也使用命令行重现了它。我只发布了后者,因为它给出了结果。当我下次能够登录服务器时,我可以发布 TFS 构建输出的示例。第二个示例 (D:) 中的存储库是使用 TFS 构建克隆的,而第一个示例 (C:) 是使用 VS 2015 克隆的。

Cec*_*SFT 5

我可以通过为分支历史记录创建标签并运行 gitversion 命令来重现您的场景: 在此输入图像描述

然后我提交并推送这个分支到 TFS 2015,在构建代理机器上,我运行了 gitversion 命令: 在此输入图像描述

为了找出它们不同的原因,我登录到TFS构建代理机器并拉出分支,我发现分支上没有标签。这是因为在 Visual Studio 中使用同步或推送不会推送标签。

虽然 GitVersion 文档提到,如果提交被标记,那么 GitVersion 将始终使用该版本而不是任何计算出的版本。因此,如果您重建标签,则会生成相同的版本。

总之,VS 不会推送 Tag 导致这种差异。要推送标签,您必须使用命令git push --tags