本文总结一些工具中操作步骤比较多的git指令。
一、查看自己的提交记录,用于写周报、年终总结等。
git log
git log --oneline
git log --author=zhangwenqiang --oneline -50
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
更多 git log 命令可查看:http://git-scm.com/docs/git-log
查看指定文件的日志
git blame README
二、统计代码量
1、统计个人提交行数
git log --author="zhangwenqiang" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'
2、统计一定时间范围内的个人提交代码行数
git log --author="zhangwenqiang" --since='2021-01-01' --until='2021-06-30' --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'
git log --since='2021-01-01' --until='2021-07-14' --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %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:
查看git上个人代码量
git log --author=“zhangwenqiang” --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 }’ -
统计每个人的增删行数
git log --format=’%aN’ | sort -u | while read name; do echo -en “KaTeX parse error: Expected 'EOF', got '\t' at position 5: name\̲t̲"; git log --au…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
查看仓库提交者排名前 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
统计代码总行数:
find . -name “.m" -or -name ".h” -or -name “.xib" -or -name ".c” |xargs grep -v “^$”|wc -l
统计每个人的代码行数:
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
网友评论