git中分支上的提交数

时间:2012-06-06 12:06:30

标签: git version-control

我正在编写一个小脚本,想知道自创建以来我在当前分支上做了多少次提交。

在这个例子中,我在child上做了两次提交:

git checkout master
git checkout -b child
...
git commit -a
...
git commit -a

所以我想要的是

commit_number = ...
echo $commit_number

感谢您的帮助。

5 个答案:

答案 0 :(得分:45)

Git可以在没有进一步shell脚本的情况下为您提供提交次数。

git rev-list master.. --count

rev-list(在git help -a中列出)用于修订。

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

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

因此,您是否要使用master..master...取决于您是否想知道您在分支中提交了多少次提交,因为您将其拆分({{ 1}}),或当前主服务器和分支之间的差异,主服务器中的提交数量,因为分支被拆分。

答案 1 :(得分:16)

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

然后你只需要每行列出一行,并计算行数:

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

答案 2 :(得分:7)

更新:git rev-list现在有--count

git rev-list --count master..

使用较旧的git版本:

git rev-list master.. |wc -l

rev-list列出了修订版,master..引用了提交,因为当前HEAD偏离master

答案 3 :(得分:0)

如果您想查看从您当前的HEAD开始有多少次提交,您可以执行以下操作:

git shortlog -sn

示例输出:

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

答案 4 :(得分:0)

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

  • git rev-list --count --no-merges master..

rev-list 选项用于处理修订列表。
选项 --count 将只返回一个数字,而 --no-merges 在两个或更多人一起工作时忽略合并,并且在他们提交之前不更新他们的本地副本。

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

参考:https://improveandrepeat.com/2017/10/little-git-tricks-how-many-commits-are-in-a-branch/