我想获得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人员使用它来帮助生成一个基于Git描述的有用的版本号。我展示了脚本,并在回答如何在Git项目的文件中包含当前提交id时解释了它。
其他回答
要将其转换为变量,最简单的方法是:
export GIT_REV_COUNT=`git rev-list --all --count`
Git配置——全局别名。计数“rev-list—all—Count”
如果你把它添加到你的配置中,你可以只引用命令;
git 计数
这个命令返回按提交者分组的提交计数:
git shortlog -s
输出:
14 John lennon
9 Janis Joplin
您可能想知道-s参数是——summary的缩写形式。
你可以用:
git shortlog -s -n
结果:
827 user one
15 user two
2 Gest
在构建期间生成一个数字并将其写入文件。每当您发布一个版本时,提交该文件并附上注释“Build 147”(或者当前的版本号)。不要在正常开发期间提交文件。通过这种方式,您可以轻松地在Git中的构建号和版本之间进行映射。