You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用since和until过滤Git日志无提交结果的问题排查

Git日志日期筛选无结果问题排查与解决

问题描述

我们的Git仓库有50k+提交记录,使用Git 2.43.0执行命令:

git log origin/master --since='01-01-2024' --until='01-02-2024'

尝试筛选2024年1月1日至2月1日的提交时返回空结果,但该时段实际存在数千条提交。此问题仅出现在1-3月的日期筛选中,4月之后筛选恢复正常。

核心原因

Git的日期解析对MM-DD-YYYY或DD-MM-YYYY格式存在歧义:当日期中的日和月数值都≤12时(比如1月、2月的日期),Git可能错误识别日期格式(例如将01-02-2024解析为1月2日而非预期的2月1日),导致筛选范围完全偏离目标时段;而4月之后的日期(如01-04-2024)因为月数值超过12,解析无歧义,所以筛选正常。

解决方案

1. 使用无歧义的ISO日期格式

改用YYYY-MM-DD格式指定日期,这是Git最稳定的日期解析格式,完全避免歧义:

git log origin/master --since='2024-01-01' --until='2024-02-01'

如果需要更精确的时间范围,可以加上时分秒:

git log origin/master --since='2024-01-01 00:00:00' --until='2024-02-01 00:00:00'

2. 使用英文月份名称格式

用英文月份名称替代数字,同样能消除解析歧义:

git log origin/master --since='Jan 1 2024' --until='Feb 1 2024'

3. 确保远程分支本地镜像为最新状态

虽然问题大概率由日期格式导致,但先确认本地的origin/master是否与远程同步,避免因本地分支过时导致的提交缺失:

git fetch origin

之后再执行筛选命令。

4. 升级Git版本

Git 2.43.0可能存在日期解析相关的小bug,升级到最新稳定版本(如2.44.0及以上)可修复潜在的解析问题:

# 不同系统升级命令示例:
# macOS(Homebrew)
brew upgrade git

# Ubuntu/Debian
sudo apt update && sudo apt upgrade git

内容的提问来源于stack exchange,提问作者Sithik Sm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:43:18