我正试图在除main之外的另一个分支(main指向创建标记的分支)中查找自标记以来的提交次数
我在这里检查了几个q/a,建议使用"git-rev-list"one_answers"git-descripte"(有很多标志组合和不同顺序的参数),但没有取得多大成功,在我的情况下,为了得到正确的数字。。。
对于我们的示例,我们有两个分支,即main
和dev
。
在我们的工作流程中,我们用发布时的新版本标记main。然后我们将main
合并为dev
。从那里开始,我很想得到dev
中的提交数量,因为这个版本/标签仅。
假设我们刚刚用"v1.2.3"标记了main
,并将main
合并到dev
中。如果我在main
中更改一个文件并提交它,那么下面的命令将产生"1",这是完美的。
`git rev-list v1.2.3..HEAD --count`
现在,如果我签出dev
并在此上下文中使用相同的命令,我将得到类似17的结果在这种情况下,我希望获得0(对于合并条目,则为1)
如果我在dev
中编辑/提交一个文件并运行此命令,我得到了18;+1是预期的。
如何";重置";当我将main
合并到dev
并从那时开始计数时,这个计数器变为0?或者使用什么好的参数
我再次尝试使用参数--first-parent
/--no-merges
等等;我可以减少这个数字,但永远不会得到0或1(1可能用于提交合并,我也可以)
感谢
这17个提交很可能是v1.2.3
提交的兄弟,自main
被冻结用于发布测试以来,这些提交在dev
中累积。它们在历史上既不在CCD_ 19之前,也不在其后。在这种情况下,看起来git
正在告诉您自两个分支的共同祖先以来的所有提交。
如果你从合并提交而不是标记中计数,你会得到你想要的零,但这会将这17个提交折扣给dev,并使你在dev
中的当前状态看起来是v1.2.3
,而实际上是v1.2.3
+17个其他提交。
样本回购:
* eb8a717 | HEAD -> dev | first commit to dev after main merged back in
* 2862ad6 | | Merge branch 'main' into dev
|
| * 33cf7dd | tag: v1.2.3, main| patch to initial version
* | 9458df5 | | second commit to dev since branching
* | 53d6d29 | | first commit to dev since branching
|/
* 2ffc809 | | first commit
$ git rev-list --count v1.2.3...HEAD
4
$ git rev-list --count 2862ad6...HEAD
1
也许您想将合并提交标记为v1.2.4
、v1.3.0
或v2.0.0
(视情况而定),并从该标记开始计数?