Skip to content
← 返回Git列表
Git任务与配置历史记录

历史记录 · 保留原版本与环境,供查阅参考。

Git 提交统计与版本术语 ​

Git 操作统计 ​

以下命令默认检查当前可达历史,--author 按模式匹配作者;--numstat 汇总的是文本增删行数,净增量不是仓库现有总行数,也不是工作量评价。二进制差异不提供普通行数,合并提交的计数/差异口径须另行明确。输出数字是原记录的历史示例,其中英文 total lines 实际表示净增行数。

  • 查看 commit 总数

    shell
    git log --oneline | wc -l
  • 查看所有提交人和提交次数

    shell
    git shortlog --numbered --summary
  • 按作者统计增删行数(awk 写法)

    shell
    git log --author="Example User" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "增加的行: %s,删除的行: %s, 净增行: %s\n", add, subs, loc }' -
    shell
    added lines: 13688, removed lines: 685, total lines: 13003
  • 按作者统计增删行数(以下为历史输出)

    shell
    git 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
    shell
    Example User      added lines: 13688, removed lines: 685, total lines: 13003
    Example Contributor        added lines: 1, removed lines: 1, total lines: 0
  • 按作者统计增删行数(gawk 写法)

    shell
    git log --author="Example User" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 净增行数: %s\n",add,subs,loc }'
  • 按作者和时间范围统计增删行数

    shell
    git 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 }'
  • 统计每个人增删行数

    shell
    git 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,代表专业版。

继续阅读