git 一旦修改或变基发生,作者日期就是假的

git author date bogus as soon as amend or rebase took place

我在 git 历史记录中观察到一个奇怪的行为:

我可以使用 git gui 正常提交,并且在 gitk 中查看作者日期和提交者日期是正确的。

但是一旦我通过 git gui 执行修改或通过 git bash 执行变基,所有后续提交的提交者日期都是正确的,作者日期是与上次提交相同在此重写过程之前 - 有时是几天前。

当我关闭 git-gui、gitk 及其父级 git bash 并重新打开它们时,下一次提交的日期再次正确 - up直到下一个 rebase/amend

git-gui 版本 0.20.GITGUI(在 Windows 下使用)

git 版本 2.10.0.windows.1(x64 位)

此行为是设计使然。 Git 作者日期和提交者日期有不同的值。

作者日期反映了第一次创建此提交的时间,并被保留。

提交者日期会在您每次修改、变基等时更新

要同时查看两者,git log --pretty=fuller。

如果你想重置作者时间,git commit --amend --reset-author.

原因

这是由 Git Gui(在 Git for Windows >=v2.8.2.windows.1)中设置环境变量的错误引起的GIT_AUTHOR_NAMEGIT_AUTHOR_EMAILGIT_AUTHOR_DATE 当您提交并修改时。这些变量会覆盖任何创建提交的操作的所有作者设置,例如变基、提交、合并等。

修复

这应该会在 G4W 的下一个版本(v2.11.x ?)中修复。

解决方法

提交修改后立即关闭 Git Gui。