15

「gitlog」を実行すると、コミットの日付が乱れるのはなぜですか?

リポジトリの1つのブランチを見ています。日付は正しいはずですよね?

4

2 に答える 2

15

日付が任意の順序である必要があるという保証はありません。実際、Gitを使用して簡単に日付を偽造できます。

ただし、これはリベースまたはチェリーピッキングが原因である可能性があります。たとえば、私がよく行うことは、ローカルでいくつかの作業をコミットすることですgit pull --rebase。その結果、履歴が書き換えられ、私のコミットはorigin/master、その間に導入されたコミットの子にgit rebaseなりますが、プロセスのコミットの日付は変更されません。git cherry-pick同じ効果があります。

変更がコミットされた日付を確認したい場合は、と同様git log --pretty=fullerにを確認できます。これらは正常である可能性が高いですが、ここでも保証はありません。CommitDatesAuthorDates

于 2012-11-01T13:20:18.310 に答える
10

No, not necessarily.

Git tracks two dates. The author date says when the original author made the commit. In the case of email patches it might be taken from an email date. The patch might be applied at a much later time.

The commit date is often in order as that says when a commit is made, and a commit can only be made when its parent exists. If a commit is rebased or cherry-picked it will be given a new commit date but the original author date will be preserved. However, even the commit date is taken from the local system time of the machine where it is made so it is subject to whatever the local clock happened to be set to. In general there's no guarantee that this will be accurate or consistent across machines.

(Both dates include timezone information.)

于 2012-11-01T13:24:18.937 に答える