"date" adalah konsep yang agak longgar di git. Sebuah komit akan memiliki tanggal pembuat yang mungkin beberapa waktu di masa lalu sebelum seseorang benar-benar menarik / melakukan komit ke dalam repositori mereka, juga komit mungkin di-rebased dan diperbarui untuk berada di atas komit yang tampaknya lebih baru.
Komit juga memiliki tanggal komit yang diperbarui jika komit di-rebased atau diubah dengan cara apa pun. Komit ini lebih cenderung berada dalam semacam urutan kronologis tetapi Anda masih bergantung pada pengatur waktu yang memiliki waktu yang tepat yang disetel di komputernya dan meskipun demikian, komit yang tidak dimodifikasi dapat duduk di cabang fitur pada repositori jarak jauh tanpa batas waktu sebelumnya digabung ke dalam cabang master dari repositori pusat.
Apa yang mungkin paling berguna untuk tujuan Anda adalah tanggal reflog pada repositori tertentu yang dimaksud. Jika Anda mengaktifkan reflog per cabang (lihat git config core.logAllRefUpdates
), Anda dapat menggunakan ref@{date}
sintaks untuk merujuk ke lokasi cabang pada waktu tertentu.
Misalnya
git log -p master@{2009-07-01}..master@{now}
Anda juga dapat menggunakan deskripsi 'kabur' seperti:
git log -p "master@{1 month ago}..master@{yesterday}"
Perintah-perintah ini akan menampilkan semua komit yang telah 'muncul' di cabang tertentu dari repositori terlepas dari seberapa 'tua' mereka sebenarnya menurut pembuat dan tanggal komitnya.
Perhatikan bahwa reflog per cabang khusus untuk repositori, jadi jika Anda menjalankan perintah log pada klon, dan Anda tidak menarik (katakanlah) sebulan, maka tarik semua perubahan untuk bulan terakhir sekaligus, maka semua perubahan bulan lalu akan muncul dalam sebuah @{1 hour ago}..@{now}
rentang. Jika Anda dapat menjalankan perintah log di repostori 'sentral' yang didorong orang, maka perintah tersebut dapat melakukan apa yang Anda inginkan.