Saya mencari log git saya dan menemukan bahwa AuthorDate dan CommitDate sedikit berbeda untuk beberapa komit saya:
commit 3a5912f90dc5227f308e99f95152fbee2301c59a
Author: <hidden>
AuthorDate: Fri Jun 15 10:57:22 2012 +0800
Commit: <hidden>
CommitDate: Fri Jun 15 11:14:37 2012 +0800
Penulis dan Komit sama dengan saya.
Bagaimana ini bisa terjadi? Saya bingung selama berhari-hari.
Ada lagi (terjadi dalam 17 dari 341 komit):
+------------------------------+-------------------------------+
| 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 log
secara default hanya menampilkan tanggal pengerjaan Penulis. Tapi jika Anda menggunakan--since
,--until
,--before
,--after
, tanggal relatif, penggunaan git commit komit tanggal sebagai gantinya!git log --since="yesterday"
mungkin tidak menunjukkan hasil yang diharapkan jika Penulis komit tanggal berbeda dengan pelaku commit komit date.git --squash merge
adalah strategi penggabungan yang agak umum yang dapat dikonfigurasi (meskipun sepertinya tidak digunakan di sini, ini dimunculkan sebagai contoh). Selain itu, jika git digunakan melalui IDE atau GUI git, ada kemungkinan konfigurasi / fungsionalitas tidak ada di CLI. Mungkin ada baiknya untuk memeriksa ulang apa yang akan dilakukan penggabungan Anda yang dikonfigurasi di lingkungan tempat Anda melakukan penggabungan.Jawaban:
Tanggal penulis mencatat ketika komit ini pertama kali dibuat (yaitu ketika Anda menyelesaikan
git commit
). Menurut dokumen darigit commit
, tanggal penulis dapat diganti menggunakan--date
sakelar.Tanggal komit diubah setiap kali komit diubah, misalnya saat melakukan rebasing cabang tempat komit berada di cabang lain ( lebih ).
Hal yang sama bisa terjadi jika Anda membuat komit dan mengirim tambalan Anda ke yang lain untuk menerapkan tambalan di repo lain: tanggal pembuat akan menjadi tanggal Anda
git commit
, tanggal komit akan disetel ke tanggal itu ketika tambalan diterapkan di repo lainnya.Jika Anda mengirim tambalan ke dua kolega, akan ada satu tanggal penulis tetapi dua tanggal komit yang berbeda.
Ini juga disebutkan dalam Git Book :
sumber
git show -s --format="commit %cD author %aD" HEAD
, tampaknya, misalnya, mengubah pesan komit dengangit gui
memperbarui keduanya, tetapigit commit --amend
hanya memperbarui tanggal komiter. tidak intuitif.Tanggal pembuat pada komit dipertahankan pada rebase / cherry-pick dll. Tapi tanggal komit diubah.
sumber
git commit --amend
.