git 统计代码量等信息

  1. 获取提交总次数

    git log --oneline | wc -l
    
  2. 获取某人提交总次数

    git log --author="forwardhuan" --oneline | wc -l
    
  3. 获取某段时间提交总次数

    git log --since="2022-03-01" --until="2023-03-31" --oneline | wc -l
    
  4. 获取某段时间每人提交次数

    git log --format='%aN' | sort -u | while read name; do echo -en "$name\t,"; git log --author="$name" --since="2022-03-01" --until="2023-03-31" --oneline | wc -l;done
    
  5. 获取某人某段时间提交总次数

    git log --author="forwardhuan" --since="2022-03-01" --until="2023-03-31" --oneline | wc -l
    
  6. 获取提交的所有用户名

    git log --format='%aN' | sort -u
    
  7. 获取提交的所有用户个数

    git log --pretty='%aN' | sort -u | wc -l
    
  8. 获取某段时间提交的所有用户名

    git log --since="2022-03-01" --until="2023-03-31" --format='%aN' | sort -u
    
  9. 获取某段时间提交的所有用户个数

    git log --since="2022-03-01" --until="2023-03-31" --format='%aN' | sort -u | wc -l
    
  10. 获取某人提交详情(新增行数,删除行数,总计)

    git log --author="forwardhuan" --pretty=tformat: --numstat | awk '{add += $1; subs += $2; loc +=$1 - $2 } END { printf "新增行数: %s,  移除行数: %s,  总行数: %s\n", add, subs, loc}'
    
  11. 获取某人某段时间提交详情(新增行数,删除行数,总计)

    git log --author="forwardhuan" --pretty=tformat: --since="2022-03-01" --until="2023-03-31" --numstat | awk '{ add += $1; subs += $2; loc += $1-$2} END {printf "新增行数:%s, 移除行数:%s,  总行数:%s\n", add, subs, loc}'
    
  12. 获取所有人提交的详细信息(新增行数,删除行数,总计)

    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
    
  13. 获取所有人某段时间提交的详细信息(新增行数,删除行数,总计)

    git log --format='%aN' | sort -u | while read name; do echo -en "$name\t,"; git log --author="$name" --pretty=tformat: --since="2022-03-01" --until="2023-03-31" --numstat | awk '{add += $1; subs += $2; loc += $1-$2} END {printf "新增行数:%s, 移除行数:%s, 总行数:%s\n", add, subs, loc }';done
    
  14. 获取所有人提交的详细信息(新增行数,删除行数,总计)

    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
    
  15. 获取最后一次提交的信息(commit id,作者,时间,内容)

    git log -1 --pretty="%H, %an, %cd, %s" --date=format:"%Y-%m-%d %H:%M:%S"
    

    其中–pretty=format:“%xx”可以指定需要的信息,其常用的选项如下

    %H提交对象(commit)的完整哈希字串
    %h提交对象的简短哈希字串
    %T树对象(tree)的完整哈希字串
    %t树对象的简短哈希字串
    %P父对象(parent)的完整哈希字串
    %p父对象的简短哈希字串
    %an作者(author)的名字
    %aNmailmap的作者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
    %ae作者的电子邮件地址
    %aE作者邮箱(.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
    %ad作者修订日期(可以用 -date= 选项定制格式)
    %aD日期, RFC2822格式
    %ar作者修订日期,按多久以前的方式显示
    %at日期, UNIX timestamp
    %ai日期, ISO 8601 格式
    %cn提交者(committer)的名字
    %cN提交者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
    %ce提交者的电子邮件地址
    %cE提交者 email (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
    %cd提交日期 (–date= 制定的格式)
    %cD提交日期, RFC2822格式
    %cr提交日期, 相对格式(1 day ago)
    %ct提交日期, UNIX timestamp
    %ci提交日期, ISO 8601 格式
    %dref名称
    %eencoding
    %scommit信息标题
    %fsanitized subject line, suitable for a filename
    %bcommit信息内容
    %Ncommit notes
    %gDreflog selector, e.g., refs/stash@{1}
    %gdshortened reflog selector, e.g., stash@{1}
    %gsreflog subject
    %Cred切换到红色
    %Cgreen切换到绿色
    %Cblue切换到蓝色
    %Creset重设颜色
    %C(…)制定颜色, as described in color.branch.* config option
    %mleft, right or boundary mark
    %n换行
    %%a raw %
    %x00print a byte from a hex code
    %w([[,[,]]])switch line wrapping, like the -w option of git-shortlog(1).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值