我想获得Git存储库的提交数量,有点像SVN的修订号。
我们的目标是将其用作唯一的、递增的构建号。
我目前这样做,在Unix/Cygwin/msysGit上:
git log --pretty=format:'' | wc -l
但我觉得它有点过时了。
有更好的办法吗?如果我实际上不需要wc甚至Git,那么它就可以在裸Windows上工作,那就太棒了。只要读取一个文件或目录结构…
我想获得Git存储库的提交数量,有点像SVN的修订号。
我们的目标是将其用作唯一的、递增的构建号。
我目前这样做,在Unix/Cygwin/msysGit上:
git log --pretty=format:'' | wc -l
但我觉得它有点过时了。
有更好的办法吗?如果我实际上不需要wc甚至Git,那么它就可以在裸Windows上工作,那就太棒了。只要读取一个文件或目录结构…
当前回答
一个简单的方法是:
git log --oneline | wc -l
Oneline确保了这一点。
其他回答
下面的命令打印当前分支上的提交总数。
git shortlog -s -n | awk '{ sum += $1; } END { print sum; }' "$@"
它由两部分组成:
打印按作者分组的日志总数(git shortlog -s -n) 示例输出 1445年约翰C 1398汤姆D 1376克里斯托弗·P 166贾斯汀·T 166年,你 将每个作者的提交总数相加,即每行的第一个参数,并打印出结果(awk '{Sum += $1;}结束{打印sum;}“$ @”) 使用与上面相同的例子,它将得到1445 + 1398 + 1376 + 166 + 166。因此输出将是: 4551年
有一个很好的帮助脚本,Git人员使用它来帮助生成一个基于Git描述的有用的版本号。我展示了脚本,并在回答如何在Git项目的文件中包含当前提交id时解释了它。
我以前用的是:
git log | grep "^commit" | wc -l
简单但有效。
如果您正在为提交寻找一个唯一且可读性强的标识符,那么git describe可能正是适合您的东西。
Git配置——全局别名。计数“rev-list—all—Count”
如果你把它添加到你的配置中,你可以只引用命令;
git 计数