`

Git代码行统计命令集

    博客分类:
  • Git
 
阅读更多
转载:https://segmentfault.com/a/1190000002434755

统计某人的代码提交量,包括增加,删除:
git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'
仓库提交者排名前 5(如果看全部,去掉 head 管道即可):
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
仓库提交者(邮箱)排名前 5:这个统计可能不会太准,因为很多人有不同的邮箱,但会使用相同的名字
git log --pretty=format:%ae | gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }' | sort -u -n -r | head -n 5
贡献者统计:
git log --pretty='%aN' | sort -u | wc -l
提交数统计:
git log --oneline | wc -l
添加或修改的代码行数:
git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/;


git log 参数说明:
--author   指定作者
--stat   显示每次更新的文件修改统计信息,会列出具体文件列表
--shortstat    统计每个commit 的文件修改行数,包括增加,删除,但不列出文件列表: 
--numstat   统计每个commit 的文件修改行数,包括增加,删除,并列出文件列表:

  
-p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
       例如:git log -p  -2
--name-only 仅在提交信息后显示已修改的文件清单
--name-status 显示新增、修改、删除的文件清单
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)
--graph 显示 ASCII 图形表示的分支合并历史
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)
       例如: git log --pretty=oneline ; git log --pretty=short ; git log --pretty=full ; git log --pretty=fuller
--pretty=tformat:   可以定制要显示的记录格式,这样的输出便于后期编程提取分析
       例如:git log --pretty=format:""%h - %an, %ar : %s""
       下面列出了常用的格式占位符写法及其代表的意义。                  
       选项       说明                 
       %H      提交对象(commit)的完整哈希字串              
       %h      提交对象的简短哈希字串              
       %T      树对象(tree)的完整哈希字串                  
       %t      树对象的简短哈希字串                   
       %P      父对象(parent)的完整哈希字串              
       %p      父对象的简短哈希字串                  
       %an     作者(author)的名字             
       %ae     作者的电子邮件地址               
       %ad     作者修订日期(可以用 -date= 选项定制格式)                  
       %ar     作者修订日期,按多久以前的方式显示                   
       %cn     提交者(committer)的名字               
       %ce     提交者的电子邮件地址                   
       %cd     提交日期               
       %cr     提交日期,按多久以前的方式显示             
       %s      提交说明 
--since  限制显示输出的范围,
       例如: git log --since=2.weeks    显示最近两周的提交
       选项 说明               
       -(n)    仅显示最近的 n 条提交                   
       --since, --after 仅显示指定时间之后的提交。                   
       --until, --before 仅显示指定时间之前的提交。                 
       --author 仅显示指定作者相关的提交。               
       --committer 仅显示指定提交者相关的提交。

    一些例子: git log --until=1.minute.ago // 一分钟之前的所有 log git log --since=1.day.ago //一天之内的log git log --since=1.hour.ago //一个小时之内的 log git log --since=`.month.ago --until=2.weeks.ago //一个月之前到半个月之前的log git
log --since ==2013-08.01 --until=2013-09-07 //某个时间段的 log   git blame
看看某一个文件的相关历史记录
       例如:git blame index.html --date short
分享到:
评论

相关推荐

    GIT分支代码统计

    Git不仅提供了版本回溯、合并分支等基本功能,还支持各种高级操作,如代码统计。本主题聚焦于"Git分支代码统计",这是一项对于项目管理和团队协作至关重要的任务。通过统计每个分支的代码量,我们可以了解开发进度,...

    git命令汇总以及命令注释

    ### Git命令汇总及详解 #### 一、Git基础命令 **1. `git branch`** - **功能**: 查看本地所有分支。 - **示例**: `git branch` - **用途**: 快速了解当前项目的分支结构。 **2. `git status`** - **功能**: ...

    git log根据特定条件查询日志并统计修改的代码行数

    `git log --stat`可以给出每个提交的简要统计,包括修改和增加的文件数以及代码行的变化。但请注意,这并不直接给出总代码行数,而是每个提交的差异。 为了获得总代码行数,一种常见方法是通过管道(`|`)将`git ...

    Git精简常用命令集及解析

    Git 精简常用命令集及解析 Git 是一个分布式的代码版本管理工具,跟 SVN 的集中式代码版本管理工具不同。 Git 服务器有多种选择,包括国内的 Gitee(中文名叫码云)、国外的 GitHub(被微软收购)和开源的 GitLab。...

    一个实用的代码行统计工具

    6. **版本控制集成**:与Git、SVN等版本控制系统集成,可以追踪代码行变化历史,对比不同版本间的代码量差异。 使用代码行统计工具的过程一般如下: 1. **选择合适的工具**:根据项目需求和团队偏好选择工具,例如...

    Git基本常用命令.md

    根据给定文件的信息,我们可以提炼出以下几个核心知识点: ### 一、Git与版本控制的重要性 #### 版本控制概述 版本控制(Revision control)是一...掌握 Git 的基本操作和最佳实践能够极大地提升开发效率和代码质量。

    代码行统计

    1. **版本控制系统**:在进行代码行统计时,我们通常会使用版本控制系统,如Git、SVN或Mercurial等。这些系统记录了每一次代码提交,使得我们能够追踪代码的历史变化,并进行版本间的对比。 2. **代码差异(diff)*...

    git常用命令(注释易懂超级全)

    ### Git常用命令详解 #### 一、新建代码库 **命令功能**: - `git init`:用于在当前目录创建一个新的Git仓库。 - `git init [project-name]`:用于在一个新目录中创建并初始化一个Git仓库。 - `git clone [url]`...

    git log查询命令V1.2.docx

    Git Log 查询命令是 Git 版本控制系统中的一组命令,用于查询和统计代码提交记录,提高开发和管理效率。下面是 Git Log 查询命令的详细说明: 一、格式化输出 Git Shortlog 命令是 Git Log 命令的一种特殊形式,...

    代码行统计工具LINECOUNT

    此外,LINECOUNT还可以与其他软件开发工具集成,如版本控制系统(Git)、持续集成/持续部署(CI/CD)工具,以实现更自动化的代码统计流程。 总的来说,LINECOUNT是一个实用的工具,能够为软件开发团队提供有价值的...

    git命令行扩展工具 Git Extras.zip

    `git thanks`命令允许你向所有提交过代码的贡献者表示感谢,这在开源项目中是展现团队精神的一种良好方式。 4. **发布与版本管理**: `git release`命令帮助你创建和推送新的版本标签,简化了版本发布过程。你...

    diffcount 代码差异统计工具

    《diffcount:一款高效代码差异统计工具》 在软件开发过程中,版本控制是不可或缺的一环,而比较不同版本之间的代码差异则是版本控制中的重要任务。diffcount是一款专注于代码差异统计的工具,它能够帮助开发者快速...

    git的一些命令行操作

    通过这些命令,我们可以有效地管理版本控制,完成代码的上传、提交、更新等操作。Git作为一款强大的分布式版本控制系统,在软件开发中扮演着极其重要的角色。理解并熟练掌握这些基本命令对于高效地使用Git来说至关...

    git常用命令保存快速使用

    Git 是一个免费、开源的版本控制系统,可以帮助开发者更好地管理代码修改记录。下面是 Git 常用命令的备忘录,涵盖了 Git 的配置、常用命令、查看、添加、提交、删除、找回、重置修改文件、查看提交记录、查看文件 ...

    git常用命令

    Git是世界上最流行的分布式版本控制系统,它允许开发者跟踪和管理代码变更。本文将详细介绍Git的一些常用命令...记住,实践是学习Git的最佳方式,多用多练,逐渐熟悉这些命令,你将能够更高效地利用Git来管理你的代码。

    git 操作指南

    以上命令和选项构成了Git操作的核心,通过灵活运用这些命令可以有效地管理代码版本、进行代码合并、撤销错误操作和保存当前工作状态。需要注意的是,由于OCR技术限制,上述内容中可能存在个别字的识别错误,理解时需...

    linux-vimautoprogramming提供统计整个git项目行数

    安装完成后,当你在Vim中打开一个位于Git仓库根目录的文件时,可以使用特定的命令来统计代码行数。通常,这个命令会是`:GitStats` 或类似的形式。执行这个命令后,Vim会在底部的状态栏显示项目中的总行数、代码行数...

    项目代码行数统计.zip

    另一种常用的方法是利用专门的代码统计工具,如CLOC (Count Lines of Code)、SLOCCount、NCLOC (Non-Commented Lines of Code) 等。这些工具不仅可以统计总代码行数,还能区分注释行、空行,甚至可以按编程语言或...

Global site tag (gtag.js) - Google Analytics