Git指定作者查看时间范围内的提交日志

本文介绍了如何使用Git的`git log`命令,通过--author和时间范围筛选,查询xercis在指定时间段内的提交记录。通过`subprocess`模块遍历项目目录,展示了如何在Python中执行这些命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

写过啥代码忘了,写报告要看

Git指定作者查看时间范围内的提交日志




解决方案

使用 git log 命令

git log --committer="xercis" --after="2021-3-1" --before="2021-5-1" --pretty=format:"%an %ad : %s" --date=short --no-merges --reverse

效果
在这里插入图片描述



部分参数如下

参数含义取值
–author作者
–committer提交者
–after某时间后
–before某时间前
–reverse按时间顺序
–grep提交说明包含字符串
-S修改内容包含字符串
–pretty格式化信息oneline、short、full、fuller、format
–date日期格式relative、local、default、iso、rfc、short、raw
–no-merges隐藏合并提交

作者是程序的修改人,提交者是代码提交人




遍历所有项目

import subprocess
from pathlib import Path

args = [
    'git', 'log',
    '--committer=xercis',
    '--after=2021-3-1',
    '--before=2021-5-1',
    '--pretty=format:%an %ad : %s',
    '--date=short',
    '--no-merges',
    '--reverse'
]

for cwd in Path('..').glob('*'):
    if cwd.is_dir():
        print('【{}】'.format(cwd))
        subprocess.run(args, cwd=cwd)
        print()
        print()




参考文献

  1. Git Documentation
  2. Git 文档
  3. subprocess — Python文档
  4. Python路径操作库pathlib
### 使用 Git 统计代码提交量 为了统计特定时间段内的代码提交数量,可以利用 `git log` 命令配合其他工具来实现更精确的结果。下面是一些常用方法: #### 方法一:按时间范围统计所有作者提交次数 通过指定日期区间并过滤日志条目,能够得到该期间内总的提交数目。 ```bash $ git log --since="2023-01-01" --until="2023-12-31" --pretty=tformat: | wc -l ``` 这条命令会计算自定义起始日至结束日内所有的提交记录数[^1]。 #### 方法二:针对单个开发者统计其贡献度 如果想要了解某个开发者的具体工作情况,则可以通过添加参数限定用户名或邮箱地址来进行筛选。 ```bash $ git log --author="Author Name" --pretty=tformat: | wc -l ``` 此令用于获取名为 "Author Name" 的用户所做过的全部提交的数量。 #### 方法三:查看某文件的历史修改频率 对于关注某一特定源码文件的变化趋势而言,可借助如下方式快速定位到相关联的日志信息。 ```bash $ git log --follow -- filename.c | grep '^commit' | wc -l ``` 上述脚本展示了给定路径下目标文档被更改过几次的信息;其中 `--follow` 参数允许追踪重命名操作前后的变更历史。 除了以上几种基本形式外,还有更多高级技巧可用于深入分析版本库中的活动模式,比如结合正则表达式匹配关键词、导出完整的 HTML 报告等。不过这些都超出了当前讨论的主题范畴,在实际应用过程中可以根据需求灵活调整查询语句以满足不同的业务场景要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XerCis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值