1. ホーム
  2. git

[解決済み] なぜgit AuthorDateはCommitDateと違うのですか?

2022-07-06 17:17:19

質問

git logs を見てみると、いくつかのコミットで 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

AuthorとCommitは同じ私です。

どうしてこうなるのでしょうか?何日も困惑しています。

他にもあります(341コミット中17コミットで発生)。

+------------------------------+-------------------------------+
| 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           |
+------------------------------+-------------------------------+

どのように解決するのですか?

この 作成日 は、このコミットが最初に作成された日付 (すなわち、あなたが git commit ). のドキュメントによると git commit のドキュメントによると、作者の日付は --date スイッチで上書きできます。

コミット日 はコミットが変更されるたびに変更されます。たとえば、コミットが入っているブランチを別のブランチにリベースするとき ( より ).

別のリポジトリでパッチを適用するために、コミットを行い、パッチを別のリポジトリに送信した場合も同じことが起こります: 作成者の日付は、あなたの git commit の日付になり、他のリポジトリでパッチが適用されると、コミット日がその日付に設定されます。

パッチを2人の同僚に送った場合、作成日は1つですが、コミット日は2つ異なることになります。

また、このことは Gitブック :

とは何が違うのか、疑問に思うかもしれません。 著者 コミッター . は 作成者 はパッチを最初に書いた人であるのに対し コミッター はそのパッチを最後に適用した人です。つまり、あなたがプロジェクトにパッチを送り、コアメンバーの一人がそのパッチを適用した場合、あなた自身とコアメンバーであるコミッターの両方がクレジットされることになります。