查看某个人的代码量

git log --author="wangxiaoming.hit" --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 }'

gitlab统计项目代码行数 gitlab 代码统计_电子邮件地址

查看git提交前5名

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

贡献值统计

git log --pretty='%aN' | sort -u | wc -l

提交数统计

git log --oneline | wc -l

统计所有人提交代码量

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.java\|.xml\|.properties\|.css\|.js\|.go\|.yml\|.txt\)$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

gitlab统计项目代码行数 gitlab 代码统计_电子邮件地址_02

统计或修改的行数

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 恢复到某一个版本

1、在开发过程中遇到合并别人的代码或者合并主分支的代码导致自己的分支代码冲突或有别的问题,这时我们需要回退某个git提交历史的代码 用一下命令

git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96

后面的是git提交的历史版本号,上git上面找到复制下来就行
2、执行上面操作之后我们本地的代码就会回到你需要回到的某个版本的代码

但是只是我们本地的代码回退了 如果需要push到远端需要执行以下操作

git push -f -u origin master(需要push到远端的分支)

强制提交到master分支,远端的分支将会被替换,
注意:这里我们要注意,当我们执行了第二步操作之后,远端的代码就已经被强制替换掉 在 “ 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 “之后提交的分支git提交历史上就找不到了 所以我们强制推到远端一定要记得备份代码