Git庫程式碼統計(命令列統計)
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