Git Commit 使用了错误的时区

8

通常我使用两台电脑,分别为: PC1PC2

在两台电脑上我都在 Windows 10 上使用 CygWin

它们的配置相同。

PC1 上,我试图调整如何显示日期和时间:

$ git log

我正在尝试多个bashgit命令。

在过去以及目前在PC2上,当我执行以下操作时:

$ date

我收到以下内容:
Tue Sep 25 16:17:34 CDT 2018

但是在PC1(错误的电脑)上,使用相同的命令,我得到:

Tue, Sep 25, 2018 16:17:34

您可以看到,TimeZone指示器未显示。

此外,在PC1上,当我提交并列出历史记录时,使用以下命令:$ git log,日期如下:

Date:   Tue Sep 25 22:58:42 2018 +0100

应该放在哪里:

Date:   Tue Sep 25 16:58:42 2018 -0500

因为我的当前时区是:CDT (America/Chicago) (-05:00),你有什么解决办法吗?感谢! [编辑1] 回应下面@Johan的建议,他说: --- 评论开始 --- 你需要将 git log --date 设置为 local
git config --global log.date local

--- 评论结束 ---

我刚试了一下,现在我的最后一次提交的日期没有TimeZone指示器了。使用与之前相同的时间参考,它应该是:

Date:   Tue Sep 25 22:58:42 2018

我需要在提交列表上获取TimeZone指示器。 [编辑2] 响应下面@Johan的建议,他说: --- 评论开始 --- 您需要将git log --date设置为default
git config --global log.date default

--- 评论结束 ---

我刚试了一下,现在我又得到了:

Date:   Tue Sep 25 22:58:42 2018 +0100

尝试新提交。

3个回答

2
我认为这不会解决您系统上的根本问题,但它肯定会有助于Git的提交日期。Git使用一个名为TZ的环境变量来设置时区(不仅仅是提交命令),因此您可以在shell中为其设置别名。请注意,保留HTML标签。
alias git='TZ=CDT /usr/bin/git'

我认为这是最健壮的“设置和忘记”解决方案,不幸的是。如果您担心在未设置环境变量的情况下调用Git,则可以编写一个预提交挂钩来阻止此类提交。 - Radon Rosborough
对我来说,TZ=CDT没有起作用,但TZ=America/Chicago起作用了! - undefined

2

我在上面的[Edit 1]中回答了。 - David Smith
抱歉 @DavidSmith,我误解了你的问题。我以为你想要去掉时区并显示本地时间。我的错。default设置应该可以解决它。我已经更新了我的答案。请尝试一下并告诉我是否解决了问题。 - Johan
谢谢@Johan,不幸的是没有。我在上面的[Edit 2]中回答了。 - David Smith
好的,这里需要一些试错 :) 您也可以定义自己的时区格式,在您的情况下它应该是这样的:format:"%a %b %d %H:%M:%S %Y %z"。否则我猜测时区存在某些潜在问题。这是我在Cygwin时区方面能找到的唯一信息 - Johan
顺便提一下,您可以使用 git log --date=<所需设置> 来测试不同的设置,而无需为每次尝试更改设置。 - Johan
这也许会引起您的兴趣:Emacs和Git在Windows上显示错误的时间 - Johan

0

检查问题是否仍然存在:

  • 使用普通的 CMD
  • 设置简化的 PATH

也就是说:

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%

请注意,使用该设置,您可以从常规CMD会话中直接使用200多个类似于Linux的命令,而无需打开bash:您可以键入ls -alrthgrep等命令(直接从CMD中运行,不需要bash)。
由于提交中使用的日期直接来自系统,如果time /T返回正确的时间(包括夏令时),则git log日期将不会有任何问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接