Git:自提交以来计数提交

时间:2012-05-31 05:03:21

标签: git

我正在尝试计算自标签制作以来的提交次数。

我尝试过使用git rev-list,但无论我尝试什么,它似乎都会返回相同的结果。这就是我的尝试:

$ git rev-list 1.7Start^..HEAD | wc -l
13902
$ git rev-list HEAD | wc -l
13902

尝试计算自创建1.7Start标记以来的提交数量。我目前正在master因此使用HEAD,但使用git rev-list master | wc -l给了我同样的效果。

自1.7以来,已有13000多次提交

git rev-list master是否应该向我显示master中的每个提交,因此产生的数字大于1.7Start^..master,这应该只是给我差异?

3 个答案:

答案 0 :(得分:4)

您收到的结果表明1.7Start^HEAD之间没有共同的历史记录,因此1.7StartHEAD必须具有不同的根提交。 (传递给a..b时的语法git rev-list仅表示“b中的每个提交都不在a中。”

在上面的评论中,提问者表示这是因为存储库是从Subversion迁移的,而master完全不同于1.7Start指向的导入分支。

答案 1 :(得分:3)

Git有git rev-list --count,它比wc-l更快。

在git的更高版本中还有git rev-list --use-bitmap-index --count,它是--count的优化。

rev-list需要提交,例如,查找当前分支的repo中的所有提交。

git rev-list --count HEAD 

答案 2 :(得分:1)

如果您只关心最后一个标记,那么git describe会告诉您最后一个标记是什么以及当前分支中提交了多少次提交它即可。例如,在下面的输出中,最后一个标记是0.1.9,并且在当前分支中进行了67次提交。

$ git describe --tags

0.1.9-67-gff9fd30

要进行验证,您可以使用以下命令查看完整的提交列表。

$ git log --oneline $(git describe --tags --abbrev=0)..

如果将其输出传递给wc -l,则应返回相同的计数。请注意,!!是Bash中的上一个命令。

$ !! | wc -l

67