问题简述 & 解决方案

如果你发现你的 git log 中的提交日期与 GitHub 上显示的不同,那么,

git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
git push -f

搞定。

背景

有时候,在进行变基 (rebase)等操作后,我们会发现 git log 中显示的提交事件和 GitHub 上显示的有所不同。 比如,如下 git log:

commit 01c9fdea5badfb43fdf5f134f0134c2be2b70ad6 (HEAD -> main, tag: 1.1.0, origin/main)
Author: alikia2x <[email protected]>
Date:   Tue Feb 13 20:42:36 2024 +0800

    [fea] Version 1.1.0, done for index page
    with i18n, accessibility, dark mode support.

commit a1efe659bea99a2ab4a5f4606f444982e4e18a4b (tag: 1.0.0)
Author: alikia2x <[email protected]>
Date:   Sun Feb 11 17:47:37 2024 +0800

    [ver] Initial Commit, Version 1.0.0

GitHub 上的显示如下: Image

在 2 月 11 日和 13 日的两次提交,在经过变基等操作后在 GitHub 上显示为两次均在 13 日提交。

参考

[1] GitHub Discussion