【问题标题】:git author date bogus as soon as amend or rebase took place一旦修改或变基发生,git author date 是虚假的
【发布时间】:2017-02-05 02:11:54
【问题描述】:

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

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

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

当我关闭 git-gui、gitk 和它们的父 git bash 并重新打开它们时,下一次提交的日期再次正确 - 直到下一次变基/修改

git-gui version 0.20.GITGUI (Windows下使用)

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

【问题讨论】:

  • 如果您通过 git bash 进行变基,而没有先使用 git gui,会发生这种情况吗?我很好奇这个臭虫/环境污染者有多少种方式潜入。
  • 似乎只有在gui首先打开时才会发生。而且我也不必关闭 gui 和 bash 让它再次工作 - 重新启动 gui 就足够了
  • 太棒了。谢谢你。 :D

标签: git git-gui gitk


【解决方案1】:

原因

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

修复

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

解决方法

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

【讨论】:

  • 谢谢。你有 bugtracker 的链接吗?
  • 似乎在 v2.11.0 中已修复 - 至少我在更新后没有再观察到这种行为
  • @PhilLab 很高兴听到。这个错误本身并没有被跟踪,但它在github.com/git-for-windows/git/issues/761 处被提及为副作用
【解决方案2】:

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

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

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

要查看两者,请使用 git log --pretty=fuller。

如果要重置作者时间,git commit --amend --reset-author。

【讨论】:

  • 好的,我明白了我之后更改的提交。但是对于我之后创建的所有 new 提交,时间都固定在过去
  • 哦,那是 git gui 中的一个错误。提交后应取消设置环境变量。
猜你喜欢
  • 2018-03-05
  • 2019-01-22
  • 2011-03-02
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多