git中分支上的提交数

git中分支上的提交数,git,version-control,Git,Version Control,我正在写一个小脚本,想知道自当前分支创建以来,我对它进行了多少次提交 在本例中,我在子项上进行了2次提交: git checkout master git checkout -b child ... git commit -a ... git commit -a 所以我想要的是 commit_number = ... echo $commit_number 假设您从master分支,master..yourbranch提供了在yourbranch中但不在master中的提交范围 然后,您只需

我正在写一个小脚本,想知道自当前分支创建以来,我对它进行了多少次提交

在本例中,我在
子项上进行了2次提交:

git checkout master
git checkout -b child
...
git commit -a
...
git commit -a
所以我想要的是

commit_number = ...
echo $commit_number

假设您从master分支,
master..yourbranch
提供了在
yourbranch
中但不在master中的提交范围

然后,您只需将它们分别列出一行,并计算行数:

git log master..yourbranch --pretty=oneline | wc -l

更新:git版本列表现在有
--count

git rev-list --count master..
对于较旧的git版本:

git rev-list master.. |wc -l

版本列表列出了版本,
master..
指的是提交,因为当前
HEAD
master

Git可以为您提供提交的数量,而无需进一步编写shell脚本

git rev-list master.. --count
(在git帮助-a中列出)用于处理修订

由于
master..
将列出从master和当前分支的基础到当前分支的提交,
--count
将给出它们的计数

如果您希望在两个修订版之间获得提交的数量,您可以使用
master…
。详细说明:从主人到主人最近的共同祖先和当前分支(负责人),再到当前分支。如果将提交历史可视化为一棵树,则应该能够遵循来自共同祖先的两个分支<另一方面,代码>主..
将只计算两个分支中的一个


因此,您是想使用
master..
还是
master…
,取决于您是想知道自拆分分支以来在分支中进行了多少次提交(
master..
),还是想知道当前主分支和分支之间的差异,自分支被拆分以来,主分支和分支中的提交数。

如果要查看您或其他人从当前
头开始所做的提交数,可以执行以下操作:

git shortlog -sn
示例输出:

   490  Donald Duck
   312  Some Developer
   274  John Doe
   144  Jane Doe
     5  Leet Hacker

以下命令将统计分支提交的总数,忽略合并提交

  • git版本列表--计数--无合并主控..
rev list
选项用于处理修订列表。
选项
--count
将只返回一个数字,而
--no merges
在两个或多个用户一起工作时忽略合并,并且在提交之前不更新本地副本

请访问以下链接以查看带有说明的图片


REF:

从您的问题中复制出的可能的副本ZOTANTOTH回答返回库创建以来提交的数量,而不是自创建分支以来。请考虑我的答案(假设更好):这是一个比接受的答案更好的解决方案。虽然我会把选项放在提交之前:
git rev list--count master..
更好的答案,因为它也涵盖了非*nix平台。对于有兴趣了解双点和三点之间详细区别的人,请看这里。非常好的说明。我必须使用这个来与
git rev list
的版本兼容,这些版本已经足够旧了,没有
--count
switch@ChuckWilbur谢谢你的评论,我在答案中添加了
--count