git log用法技巧(python)

git详尽的官方文档
git log官方文档
使用alias自定义输出
git log –pretty=oneline a.c
git log –oneline a.c

【清单方式展示每个文件修改行数】(不会汇总所有文件的信息)
git log –pretty=tformat: –numstat

【统计两个提交(或分支)间的差异清单】
git diff commit_1 commit_2 –stat 展示的是相对路径,末尾有所有文件修改行数的汇总信息
git diff commit_1 commit_2 –numstat 展示的是绝对路径,有每个文件修改行数的明细信息

【踩坑笔记】:
git log “–all”参数可以实现一个仓库所有分支的统计
在python字段串里,如果想调用的git命令行包含了大括号,像: ${remote#origin/}, 初始化变量时要写为 ${{remote#origin/}},否则python会报 KeyError 的错

gitk — a.c 以图形格式展示文件的提交历史

git show commit_id 查看变更内容

查看当前目录下的提交记录,保存在llog10.txt中:
git log -n 10 –stat . > log10.txt
参数: -n 表示最近几次提交,例如:-n 10表示最近10次提交

git log 格式化输出各参数含义:
git log展示过滤技巧
举例:git log –pretty=format:” %an “就只展示每个提交的作者名称

查看所有本地的git 配置:
git config –list

GIT【代码掌控度统计】【按作者统计】【按文件类型统计】
参考文章
git log –author=xxxx –since=2021-09-01 –until=2021-12-31 –format=’%aN’ | sort -u | while read name; do echo -en “$name\t”; git log –author=”$name” –pretty=tformat: –numstat | grep “\(|.c++\|.h\|.pro\)$” | awk ‘{ add += $1; subs += $2; loc += $1 – $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ -; done

【相关python脚本】
Python实现一个Git日志统计分析的小工具
python-gitlab 统计代码行数

GitPython官方文档
gitpython接口演示1 接口演示2

Leave a Reply

Your email address will not be published.