首页 > 其他分享 >Git-代码量行数提交次数统计脚本

Git-代码量行数提交次数统计脚本

时间:2023-12-29 11:27:32浏览次数:30  
标签:15s git log -- 次数 Git 行数 printf 用户名

git-code-user-commit-stats.sh

#!/bin/sh

# 请在 unix 终端或 git-bash 中运行此脚本

printf "\n1. 项目成员数量:"; git log --pretty='%aN' | sort -u | wc -l

printf "\n\n2. 按用户名统计代码提交次数:\n\n"
printf "%10s  %s\n" "次数" "用户名"
#  按用户名统计代码提交次数,并按次数降序排列前10名。
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 10
printf "\n%10s" "合计";
printf "\n%5s" ""; git log --oneline | wc -l

printf "\n3. 按用户名统计代码提交行数:\n\n"
printf "%s %+35s   =  %+15s   -  %+15s\n" "用户名" "总行数" "添加行数" "删除行数"
# 遍历项目成员(按提交次数降序)
git log --format='%aN' | sort -u -r | while read name; do printf "%-25s" "$name"; \
# 统计每个成员的代码提交行数
git log --author="$name" --pretty=tformat: --numstat | \
awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "%15s %15s %15s \n", loc, add, subs }' \
-; done

printf "\n%-25s   " "总计:" ; git log --pretty=tformat: --numstat | \
awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "%15s %15s %15s \n", loc, add, subs }'

echo ""
# shellcheck disable=SC2162
read -n 1 -p "请按任意键继续..."

运行效果
image

转载内容稍微修改,原产:https://zixizixi.cn/git-code-user-commit-line-count-stats

标签:15s,git,log,--,次数,Git,行数,printf,用户名
From: https://www.cnblogs.com/a999/p/17934370.html

相关文章

  • Git命令大全
    Git命令大全gitconfig(配置Git的相关参数)#查看配置信息#--local:仓库级,--global:全局级,--system:系统级$gitconfig<--local|--global|--system>-l#查看当前生效的配置信息$gitconfig-l#编辑配置文件#--local:仓库级,--global:全局级,--system:系统级$gitco......
  • Git处理换行符
    处理文本文件的换行符当我们按下回车键盘在文本文件中换行时,Linux和MacOS添加的换行符是LF,Windows是CRLF。这会导致至少以下3个问题:①假设使用Windows的开发者将代码提交到仓库,MacOS开发者拉取代码换行符是CRLF,换行符跨平台不兼容。②MacOS即使未对代码进行任何改动,但是在提......
  • jieba分词-红楼梦-次数前20
    importjieba读取文本文件path="红楼梦.txt"file=open(path,"r",encoding="utf-8")text=file.read()file.close()使用jieba分词words=jieba.lcut(text)统计词频counts={}forwordinwords:#过滤掉长度为1的词语iflen(word)==1:continue#更......
  • .NET DevOps 接入指南 | 1. GitLab 安装
    引言容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环,DevOps是由Developers(Dev)和Operations(Ops)两个单词简称组成,中文直译就是“开发运维一体化”。DevOps作为一种复杂的软件工程方法,推行实施并不可一蹴而就。因此采用好的平台工具,方能......
  • git命令大全
    常用语句gitinit#初始化本地git仓库(创建新仓库)gitconfig--globaluser.name"xxx"#配置用户名gitconfig--globaluser.email"[email protected]"#配置邮件gitconfig--global......
  • github page 自动化部署
    本文使用vue项目做演示默认读者会git、vue开发等相关知识1、准备工作创建一个vue应用创建一个本地仓库创建一个github仓库推送到github远程仓库2、打开github仓库中的设置Settings→Pages→Buildanddeployment→Source,选择GitHubActions点击Configure......
  • 在IDEA使用Git_解决冲突
    手动解决冲突手动修改最终版本最后提交代码......
  • git 怎么将某个开发分支最近几次的提交合并成一次提交
    1.切换到开发分支:gitcheckoutdev2.运行交互式rebase命令,并指定要合并的提交数量(在这个例子中是最近的3次提交):gitrebase-iHEAD~33.这将打开一个文本编辑器,显示要合并的提交列表。将除第一个提交外的其他提交的开头的`pick`关键字改为`squash`或`s`,保存......
  • java进行数据库操作的并发控制的2种方法
    本文分享自华为云社区《java进行数据库操作的并发控制》,作者:张俭。在现代应用编码中,从数据库里面find出来,进行一些业务逻辑操作,最后再save回去。即:Personperson=personRepo.findById(id);person.setAge(18);personRepo.save(person);但是这样的业务操作,如果一个线程修改......
  • GitOps实践指南:GitOps能为我们带来什么?
    Git,作为开发过程中的核心工具,提供了强大的版本控制功能。即便在写代码的时候稍微手抖一下,我们也能通过Git的差异对比(diff)轻松追踪到庞大工程中的问题,确保代码的准确与可靠。这种无与伦比的自省能力,不仅提高了工作效率,也带来了极大的安全感,让一切都有迹可循。如果上面的这些能力在......