我正在写一个小脚本,想知道自创建以来在当前分支上提交了多少个提交。git分支提交的数量
在这个例子中我有2对的提交作出child
:
git checkout master
git checkout -b child
...
git commit -a
...
git commit -a
所以我想是
commit_number = ...
echo $commit_number
谢谢您的帮助。
我正在写一个小脚本,想知道自创建以来在当前分支上提交了多少个提交。git分支提交的数量
在这个例子中我有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
未列出的)命令。
由于master..
会列出从主站和当前分支到当前分支的提交,--count
会给你它们的计数。
如果您不想在两个修订版本之间提交承诺数,您可以使用master...
。详细说明:从主人到最近的共同祖先主人和当前分支(HEAD)之间,再次到当前分支。如果你将提交历史记录看成一棵树,你应该能够跟随来自共同祖先的两个分支。 master..
另一方面只会计数两个分支之一。
因此,无论你想使用master..
或master...
取决于你是否想知道你多少提交您的分支取得因为你把它分解关闭(master..
),或当前主机和支路之间的区别,分支自分支以来,分支和中的提交数量。
这是一个比接受的答案更好的解决方案,虽然我会在committishes之前提供选项:'git rev- list --count master..' –
更好的答案,因为它也涵盖了非基于nix的平台。 – gnuchu
假设你从主分支,master..yourbranch
给你的提交范围在yourbranch
但不在主。
然后你只需要列出他们每一条线,并计算行数:
git log master..yourbranch --pretty=oneline | wc -l
更新:git的转速名单现在有--count
:
git rev-list --count master..
年纪较大git版本:
git rev-list master.. |wc -l
rev-list l ists修订,并且master..
提及提交,因为当前HEAD
与master
不同。
我不得不使用这个与'git rev-list'版本兼容的旧版本,以至于他们没有'--count'开关 –
@ChuckWilbur感谢您的评论,我在答案中加了'--count' – user1338062
[git仓库中的提交数量]的可能重复(http://stackoverflow.com/questions/1199312/number-of-commits-in-a-git-repository) –
@ZoltanToth回答你的问题返回自创建存储库以来提交的数量,不是自从创建分支以来。 –
请考虑我的回答(假设更好):https://stackoverflow.com/a/47133753/931908 –