为什么git AuthorDate与CommitDate不同?

为什么git AuthorDate与CommitDate不同?,git,Git,我查找我的git日志,发现我的一些提交的AuthorDate和CommitDate略有不同: commit 3a5912f90dc5227f308e99f95152fbee2301c59a Author: <hidden> AuthorDate: Fri Jun 15 10:57:22 2012 +0800 Commit: <hidden> CommitDate: Fri Jun 15 11:14:37 2012 +0800 提交时的作者日期保留在reb

我查找我的git日志,发现我的一些提交的AuthorDate和CommitDate略有不同:

commit 3a5912f90dc5227f308e99f95152fbee2301c59a
Author:     <hidden>
AuthorDate: Fri Jun 15 10:57:22 2012 +0800
Commit:     <hidden>
CommitDate: Fri Jun 15 11:14:37 2012 +0800

提交时的作者日期保留在rebase/cherry pick等上,但提交日期已更改。

作者日期记录了最初提交的时间(即完成
git提交
)。根据的文档,可以使用
--date
开关覆盖作者日期

每次修改提交时,提交日期都会更改,例如,在对提交位于另一个分支()上的分支进行重定基时

如果您进行提交并将修补程序发送给另一个,以便在另一个repo中应用修补程序,也可能发生同样的情况:作者日期将是您的
git提交日期
,提交日期将设置为在另一个repo中应用修补程序时的日期

如果您将补丁发送给两位同事,则将有一个作者日期,但有两个不同的提交日期

以下文件中也提到了这一点:

你可能想知道作者和提交人之间有什么区别。作者是最初编写补丁的人,而提交者是最后一次应用补丁的人。因此,如果你向一个项目发送了一个补丁,而其中一个核心成员应用了该补丁,那么你们两个都会得到信任——你是作者,核心成员是提交者


我碰巧遇到了这样一种情况,github显示的提交时间与git日志不同,我认为这是github的一个bug

原来github显示的是
CommitDate
git log
显示的是
AuthorDate
(没有
fuller
标志)

发生这种情况是因为我从不同的分支中选择了两个提交。而提交时间戳的更改就像执行
commit--append
时一样

Git
rebase
在我的案例中保留了提交日期


另外,要检查git日志中的AuthorDate和CommitDate,请使用
--format=fuller

Hmm,这似乎是在合并分支时发生的。相关信息:使用这两个不同日期的一个意外副作用:
git log
默认情况下仅显示作者提交日期。但是如果您使用
--自
--至
--在
之前,
--在
之后,相对日期,git将使用提交者提交日期
git log--since=“beday”
如果作者提交日期与提交人提交日期不同,则可能不会显示预期结果。关于合并是否会改变日期,可能取决于是否以某种非默认方式配置合并以修改提交。例如,
git--squash merge
是一种常见的合并策略,可以对其进行配置(虽然这里似乎没有使用它,但它是为了示例而提出的)。此外,如果git是通过IDE或git GUI使用的,则可能存在CLI中不存在的配置/功能。在执行合并的环境中,可能需要仔细检查您的合并配置要执行的操作。某些有问题的提交不是樱桃拾取或重定基址。它们看起来像是在合并另一个分支。
git commit--amend
。以及
squash
fixup
reword
合并分支时,我的情况会发生吗?不会。我相信日期是SHA的一部分,所以除非你执行一些重写历史的操作,比如重定基址,它不应该改变。请简要描述一下,在一次樱桃采摘、修改或重定承诺的祖先之后,我们应该如何期望时间戳发生变化,我们将不胜感激。例如,使用git-show-s--format=“commit%cD author%aD”HEAD,使用git-gui修改提交消息似乎会同时更新这两个消息,但是,
git-commit--amend
只更新提交者日期。不直观的。
+------------------------------+-------------------------------+
| from_unixtime(authored_date) | from_unixtime(committed_date) |
+------------------------------+-------------------------------+
| 2012-06-15 10:57:22          | 2012-06-15 11:14:37           |
| 2012-06-15 14:39:54          | 2012-06-15 14:48:57           |
| 2012-06-19 12:28:21          | 2012-06-19 12:29:41           |
| 2012-06-21 18:16:25          | 2012-06-21 18:28:48           |
| 2012-06-26 17:30:54          | 2012-06-26 17:33:55           |
| 2012-07-13 11:41:43          | 2012-07-13 11:42:17           |
| 2012-07-13 11:56:02          | 2012-07-13 12:13:22           |
| 2012-07-13 12:05:09          | 2012-07-13 12:12:24           |
| 2012-07-12 18:38:49          | 2012-07-13 12:26:35           |
| 2012-07-13 11:00:47          | 2012-07-13 12:25:15           |
| 2012-07-16 14:10:54          | 2012-07-16 14:15:01           |
| 2012-07-13 12:56:51          | 2012-07-16 13:49:48           |
| 2012-07-16 14:10:54          | 2012-07-16 14:19:46           |
| 2012-07-24 16:05:05          | 2012-07-24 16:05:48           |
| 2012-07-24 17:42:58          | 2012-07-24 17:43:33           |
| 2012-07-24 17:42:58          | 2012-07-24 17:45:18           |
| 2012-07-26 16:55:40          | 2012-07-26 16:55:53           |
+------------------------------+-------------------------------+