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

为什么git log不同使用方式展示的提交日期不一致?

问题原因

Git的每个提交存储两个独立的日期字段,你遇到的差异是两个字段值不同导致的:

  • 作者日期(Author Date):--date参数修改的就是这个字段,默认无参数的git log展示的也是这个值
  • 提交者日期(Committer Date):默认是执行提交操作时的系统时间,你用%ci格式化输出的就是这个字段的值

解决方案

方法1:提交时直接同步设置两个日期

在执行git commit前设置GIT_AUTHOR_DATE和GIT_COMMITTER_DATE两个环境变量,就能让两个日期保持一致:

# 方式1:临时设置环境变量后提交
export CUSTOM_DATE="2021-11-18T11:00:00+00:00"
export GIT_AUTHOR_DATE="$CUSTOM_DATE"
export GIT_COMMITTER_DATE="$CUSTOM_DATE"
git commit -m '你的提交信息'
# 提交完成后可执行unset GIT_AUTHOR_DATE GIT_COMMITTER_DATE CUSTOM_DATE清除变量

# 方式2:仅对本次提交生效,不用额外设置/清除全局变量
GIT_AUTHOR_DATE="2021-11-18T11:00:00+00:00" GIT_COMMITTER_DATE="2021-11-18T11:00:00+00:00" git commit -m '你的提交信息' --date="2021-11-18T11:00:00+00:00"

方法2:修改已存在提交的两个日期

如果已经提交完成,需要修正历史提交的日期,可以用交互式rebase批量处理:

# 以修改最近2个提交为例
git rebase -i HEAD~2
# 弹出的编辑界面中,把需要修改日期的提交前的`pick`改为`edit`,保存退出
# 依次对每个待修改的提交执行如下命令:
GIT_AUTHOR_DATE="自定义日期" GIT_COMMITTER_DATE="自定义日期" git commit --amend --no-edit
git rebase --continue

补充说明

如果你后续需要用format参数查询自定义的作者日期,把%ci替换为%ai即可,输出结果和默认git log展示的日期一致:

git log --format="%ai"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:08