我可以更改 git-describe 计算提交的方式吗?

rmu*_*unn 5 git merge git-describe

我的问题与git describe: inexplicable commit countcommit countcalculation in git-describe有关,但与两个问题都不完全相同。我一直在当前项目中的功能分支上进行开发,并且一直用于获取功能分支的版本号,使用最近的标签和提交计数来生成我认为会单调递增的git describe版本号。(例如,我的分支目前在 v1.1.0 之前有 96 次提交,因此我在向用户报告的版本中已将其变为“版本 1.1.0.96”。)v1.1.0-96-g1234567

现在,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 扩展工具,以防有人想知道。)

我的功能分支的简短快照