我正在编写一个小脚本,想知道自创建以来我在当前分支上做了多少次提交。
在此示例中,我将在以下位置进行 2 次提交child
:
git checkout master
git checkout -b child
...
git commit -a
...
git commit -a
所以我想要的是
commit_number = ...
echo $commit_number
我正在编写一个小脚本,想知道自创建以来我在当前分支上做了多少次提交。
在此示例中,我将在以下位置进行 2 次提交child
:
git checkout master
git checkout -b child
...
git commit -a
...
git commit -a
所以我想要的是
commit_number = ...
echo $commit_number
Git 可以为您提供提交次数,而无需进一步编写 shell 脚本。
git rev-list master.. --count
rev-list(列在 中git help -a
)用于处理修订。
正如master..
将列出从 master 的基础和当前分支到当前分支的提交一样,--count
将为您提供它们的计数。
如果您希望获得两个修订之间的提交次数,您将使用master...
. 详细说明:在从 master 到 master 的最近共同祖先和当前分支 (HEAD) 之间,再到当前分支。如果您将提交历史可视化为一棵树,您应该能够遵循共同祖先的两个分支。master..
另一方面,只会计算两个分支中的一个。
因此,您是否想使用master..
或master...
取决于您是否想知道自从您将其拆分后您在分支中进行了多少次提交(),或者当前master..
master 和分支之间的差异,master 和分支中的提交数分支被分开了。
假设您从 master 分支,为您提供在 master 中但不在 mastermaster..yourbranch
中的提交范围。yourbranch
然后,您只需将它们分别列出一行,并计算行数:
git log master..yourbranch --pretty=oneline | wc -l
更新: git rev-list 现在有--count
:
git rev-list --count master..
使用较旧的 git 版本:
git rev-list master.. |wc -l
rev-list 列出修订,并master..
指自当前HEAD
偏离master
.
如果你想查看你或其他人做了多少次提交,从你当前的 开始HEAD
,你可以这样做:
git shortlog -sn
示例输出:
490 Donald Duck
312 Some Developer
274 John Doe
144 Jane Doe
5 Leet Hacker
以下命令将计算总分支提交,忽略合并提交。
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/