4

我的问题与git describe: 中的莫名其妙的提交计数提交计数计算有关,但与这两个问题都不完全相同。我一直在当前项目的功能分支上进行开发,并且一直在使用git describe最近的标记和提交计数来获取功能分支的版本号,以生成我认为会单调增加的版本号。(例如,我的分支目前在 v1.1.0 之前有 96 次提交,所以我在v1.1.0-96-g1234567向用户报告的版本中已经变成了“版本 1.1.0.96”。)

现在,master 分支最近被标记为 v1.2.0,我想将 1.2 版中所做的更改合并到我的功能分支中。所以我将 master 合并到我的特性分支中,我认为这git describe会产生v1.2.0-1-g9876543. 但相反,我得到了v1.2.0-97-g9876543.

我理解为什么会发生这种情况:如 Git 手册中所述,git describe正在计算由git log v1.2.0..9876543产生的提交以产生提交计数(97,因为我的分支有 96 个提交加上一个合并提交)。但我真正想要的是使用结果,git log --ancestry-path v1.2.0..9876543它只显示合并提交,因此会产生v1.2.0-1-g9876543我期望的结果。

有什么办法让我改变git describe使用git log --ancestry-path v1.2.0..9876543而不是的行为git log v1.2.0..9876543

而且,更重要的是,以目前的方式这样做有什么好处git describe?如果我编写自己的工具来生成我一直期望的版本编号方案,这样做会失去什么?

顺便提一句。这是 git 存储库历史的快照,因此您可以直观地看到我刚刚描述的内容。feature/cmdline分支是我正在处理的分支。(这个历史视图来自 Windows 上的Git 扩展工具,以防有人想知道。)

我的功能分支的简要快照

4

0 回答 0