Saya sudah melihat dokumen yang relevan dari git-scm.com dan gitref.org , tetapi sepertinya saya tidak bisa memahaminya.
Katakanlah saya ingin mendapatkan semua komitmen untuk hari Selasa, 12 November 2013. Dengan menggunakan repo yang ada sebagai contoh, saya tahu pasti bahwa saya memiliki komitmen pada hari itu, serta melakukan hari sebelumnya dan lusa.
Dengan 2013-11-11
dan2013-11-12
Semua yang berikut memberi saya komitmen untuk tanggal 11 dan 12 November:
git log --after="2013-11-11" --until="2013-11-12"
git log --since="2013-11-11" --until="2013-11-12"
git log --after="2013-11-11" --before="2013-11-12"
git log --since="2013-11-11" --before="2013-11-12"
dengan 2013-11-12
hanya
Semua yang berikut ini tidak memberi saya komitmen:
git log --since="2013-11-12" --until="2013-11-12"
git log --since="2013-11-12" --before="2013-11-12"
git log --after="2013-11-12" --until="2013-11-12"
git log --after="2013-11-12" --before="2013-11-12"
Dengan 2013-11-12
dan2013-11-13
Seperti yang diharapkan (dari hasil di atas 2013-11-11
dan di 2013-11-12
atas), semua yang berikut memberi saya hasil dari 12 November dan 13 November:
git log --since="2013-11-12" --before="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
git log --since="2013-11-12" --until="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
... dan seterusnya dan seterusnya. Saya merasa seperti saya sudah mencoba setiap kemungkinan kombinasi since
, after
, before
, dan until
tapi masih tidak dapat menemukan jawabannya, aku juga tidak mengerti apakah orang-orang pilihan yang inklusif atau eksklusif, karena mereka tampaknya menjadi inklusif jika dua tanggal yang berbeda, tetapi eksklusif jika mereka pada hari yang sama. Apakah saya melewatkan sesuatu / apa yang saya lakukan salah ?!
Jawaban:
Terima kasih John Bartholomew!
Jawabannya adalah untuk menentukan waktu, mis
git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"
sumber
git log --after="2013-11-12 00:00" --before="2013-11-13 00:00"
itu lebih baik. Saya percayagitk --since="2013-11-12 00:00" --until="2013-11-13 00:00" &
ini juga akan berfungsi jika Anda telah menginstal gitk.git log --after="2017-07-25" --before="2017-07-26"
memberikan hasil yang valid untuk saya.Saya biasanya memeriksa log git saya dan melihat apa yang saya kerjakan pada hari tertentu dan memperbarui absen berdasarkan itu, tapi itu menyebalkan untuk mengetikkan tanggal penuh dalam format ISO jadi saya hanya melakukannya seperti ini
dan saya menambahkan
--author
hanya mencetak komit sayaCetakan ini melakukan yang terjadi pada 9 Juni lalu (jadi untuk 2016 dalam kasus ini dan bukan untuk 2015 atau 2014 dan seterusnya).
The
--since/--after
dan--until/--before
parameter juga dapat mengambil hal-hal seperti3 days ago
,yesterday
, dllsumber
since
danuntil
nilai Anda tidak benar, Anda tidak akan mendapatkan hasil yang pasti. Gunakangit log
dulu, dan cobalah untuk mengambilsince
danuntil
nilai berdasarkan apa yang Anda lihat. Tidak diperlukan cabang atau hal khusus apa pun. Tidak yakin sejak versi Git mana fitur ini tersedia. Pastikan Anda memiliki versi terbaru juga.git log --after="may 2" --before="may 3"
Tidak ada yang salah dengan jawaban yang diterima (yang saya pilih), tapi ... kami di sini untuk ilmu pengetahuan!
Output di bawah ini dapat diperluas / disesuaikan dengan
pretty=format:<string>
placeholder :Tidak 100% kebal terhadap kesalahan karena string yang sama bisa dimasukkan oleh pengguna. Tetapi dapat diterima tergantung pada placeholder yang digunakan. Cuplikan di atas tidak akan gagal, misalnya.
Seseorang juga bisa menguraikan keseluruhan
git log
untukJSON
dan mengkonsumsi / memanipulasi datanya ke isi hati seseorang. Lihat https://github.com/dreamyguy/gitlogg keluar dan jangan pernah melihat ke belakang!Penafian: itu salah satu proyek saya.
sumber
Saya membuat alias git untuk tujuan khusus itu:
Pemakaian:
sumber
git commitsAtDate yesterday
,2 days ago
, dllSkrip ini menampilkan rentang tanggal dari komit yang tersedia untuk repo saat ini, lalu meminta tanggal dari mana Anda ingin melihat komit. Ini menampilkan SHA pendek dan SHA lengkap, penulis, timestamp komit, dan komentar dalam tanda kutip tunggal.
Script terus meminta tanggal sampai Anda menekan Enter atau Control-D.
Pengguna Mac: membutuhkan tanggal gnu.
Saya menelepon skrip
commitsOnDates
, dan ini dia beraksi. Tanggal pertama yang saya masukkan tidak memiliki komit, jadi jawabannya hanya berupa baris kosong:sumber