Git 提交统计与版本术语
Git 操作统计
以下命令默认检查当前可达历史,--author 按模式匹配作者;--numstat 汇总的是文本增删行数,净增量不是仓库现有总行数,也不是工作量评价。二进制差异不提供普通行数,合并提交的计数/差异口径须另行明确。输出数字是原记录的历史示例,其中英文 total lines 实际表示净增行数。
查看 commit 总数
shellgit log --oneline | wc -l查看所有提交人和提交次数
shellgit shortlog --numbered --summary按作者统计增删行数(awk 写法)
shellgit log --author="Example User" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "增加的行: %s,删除的行: %s, 净增行: %s\n", add, subs, loc }' -shelladded lines: 13688, removed lines: 685, total lines: 13003按作者统计增删行数(以下为历史输出)
shellgit log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "增加的行: %s,删除的行: %s, 净增行: %s\n", add, subs, loc }' -; doneshellExample User added lines: 13688, removed lines: 685, total lines: 13003 Example Contributor added lines: 1, removed lines: 1, total lines: 0按作者统计增删行数(gawk 写法)
shellgit log --author="Example User" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 净增行数: %s\n",add,subs,loc }'按作者和时间范围统计增删行数
shellgit log --author="Example User" --since='2020-07-01' --until='2020-08-01' --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 净增行数: %s\n",add,subs,loc }'统计每个人增删行数
shellgit log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 净增行数: %s\n",add,subs,loc }' -; done
版本控制说明
以下术语摘自历史发布介质笔记,包含 Windows 安装盘口径;发布阶段与 OEM/零售许可、分发渠道不是同一分类。具体项目的功能冻结、授权及升级限制应以该产品和版本说明为准,不能据此判断当前产品许可。
Alpha:是内部测试版,一般不向外部发布,会有很多 Bug.一般只有测试人员使用。Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC 版不会再加入新的功能了,主要着重于除错。GA:General Availability,正式发布的版本,在国外都是用 GA 来说明 release 版本的。RTM:(Release to Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的,不过 RTM 版也有出限制、评估版的。但是和正式版本的主要程序代码都是一样的。OEM:是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。包装不像零售版精美,通常只有一面 CD 和说明书(授权书)。RVL:号称是正式版,其实 RVL 根本不是版本的名称。它是中文版/英文版文档破解出来的。EVAL:而流通在网络上的 EVAL 版,与“评估版”类似,功能上和零售版没有区别。RTL:Retail(零售版)是真正的正式版,正式上架零售版。在安装盘的 i386 文件夹里有一个 eula.txt,最后有一行EULAID,就是你的版本。比如简体中文正式版是EULAID:WX.4_PRO_RTL_CN,繁体中文正式版是 WX.4_PRO_RTL_TW。其中:如果是 WX.开头是正式版,WB.开头是测试版。_PRE,代表家庭版;_PRO,代表专业版。
继续阅读
- Git完整实践与解答
- Git任务与配置
- Git任务与配置