1、查看两个版本之间的文件及代码量差异
有效代码更多是指:纯新增的代码和修改的代码,纯删除的代码可忽略不计。
实际有效代码行数 = 代码add的行数
git diff --stat v3.2.2 v3.3.0 (按tag号)
git diff –stat commit1 commit2 (按commit号)
gitdiff --stat 2483c1b4b9e10265bf01608d1e2e56ba508a7721 977b917a0f60b6cf7a6d402f5c53d71c1b4e0eb1
结果:
.../com/shengpay/fgs/common/enums/ErrorCode.java | 1 -
.../META-INF/spring/spring-fgs-integration.xml | 2 +-
.../processor/MerchantOpenBatchFileProcessor.java | 7 -
.../service/impl/BatchOpenAccountServiceImpl.java | 2 +-
.../WEB-INF/templates/register/agent_register.vm | 10 +-
.../register/certificate_input_info_company.vm | 197 ++++++++++-----------
.../register/certificate_input_info_merchant.vm | 197 ++++++++++-----------
.../register/certificate_input_info_person.vm | 24 +--
8files changed, 199 insertions(+), 241 deletions(-)
2、指定用户名\ 指定时间段内代码量差异
gitlog --since==2018-3-11 --until==2018-3-12 --author="liulei05"--pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 }END { printf "added lines: %s, removed lines: %s, total lines: %s\n",add, subs, loc }'
结果:
addedlines: 3119, removed lines: 2639, total lines: 480
说明:
--since, --after 仅显示指定时间之后的提交。
--until, --before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
gitlog --since==2018-3-11 --until==2018-6-12 --pretty=tformat: --numstat | awk '{add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s,removed lines: %s, total lines: %s\n", add, subs, loc }'
3、按人员统计增删行数
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 "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done