我的问题与git describe: inexplicable commit count和commit count calculation in git-describe有关,但与这两个问题都不完全相同。我一直在我当前项目的功能分支上进行开发,并且我一直在使用git describe
获取功能分支的版本号,使用最近的标记和提交计数来生成版本号我思想会单调增加。 (例如,我的分支目前在v1.1.0之前提交了96个提交,因此我在向用户报告的版本I中将v1.1.0-96-g1234567
转换为"版本1.1.0.96和#34; )
现在,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 Extensions工具,以防任何人想知道。)