Saya melihat ini di repositori GitHub ini :
Apa artinya ini? Bagaimana sesuatu bisa "ditulis 7 hari yang lalu", dan "dilakukan 14 jam yang lalu"?
commit --date=
. Schwern menjelaskannya dengan sangat baik.
Saya melihat ini di repositori GitHub ini :
Apa artinya ini? Bagaimana sesuatu bisa "ditulis 7 hari yang lalu", dan "dilakukan 14 jam yang lalu"?
commit --date=
. Schwern menjelaskannya dengan sangat baik.
Jawaban:
Git memiliki konsep terpisah dari pengarang (orang yang menulis kode) dan pengalih (orang yang melakukan itu ke repositori). Demikian pula, mungkin ada tanggal yang berbeda untuk keduanya. Mereka biasanya sama.
Anda ingin mereka berbeda terutama jika orang yang menulis kode atau mengirimkan tambalan tidak memiliki akses push ke repositori seperti dalam proyek yang menggunakan milis untuk pengiriman tambalan. Dalam hal ini, orang dengan akses push akan menerapkan tambalan dan menjalankan git commit
dengan baik --author
dan --date
beralih atau menggunakan GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL dan variabel lingkungan GIT_AUTHOR_DATE (didokumentasikan dalam pohon git-commit-tree .
Kasus lain menggunakan git cherry-pick
atau git rebase. Komuter adalah orang yang melakukan pengambilan ceri, dan penulis adalah penulis komit asli. Git akan menangani pengaturan identitas dan tanggal penulis untuk Anda.
Anda dapat melihat informasi ini di repositori bersama git log --pretty=fuller
.
commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author: thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit: Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200
open repository url if confirmed, closes #1
git rebase
juga menyebabkan tanggal komit diperbarui sementara tanggal penulis tetap sama.
Ini terlihat seperti campuran antara cara kerja Git dengan tanggal dan bagaimana direferensikan dengan kata kunci penutup GitHub .
Git memisahkan antara tanggal komit dan penulis. Dalam Pro Git mereka sedikit berbeda :
Penulis adalah orang yang awalnya menulis karya tersebut, sedangkan komuter adalah orang yang terakhir mengaplikasikan karya tersebut. Jadi, jika Anda mengirim tambalan ke proyek dan salah satu anggota inti menerapkan tambalan, Anda berdua mendapatkan kredit - Anda sebagai penulis, dan anggota inti sebagai pengangkut.
Jadi sementara kode itu sendiri dilakukan / ditulis "7 hari yang lalu" (secara lokal), itu tidak "diterapkan" atau ditambal ke kode sampai "14 jam yang lalu", karena tidak terlihat di remote sampai yang dirujuk tutup pesan.