From: Junio C Hamano Date: Wed, 24 Sep 2025 16:53:05 GMT Subject: Re: 0-Based indexes for git log Message-ID: In-Reply-To: Nico Williams writes: > On Tue, Sep 23, 2025 at 05:15:46PM -0400, 𝕍𝕖𝕝𝕠𝕔𝕚𝕗𝕪𝕖𝕣 wrote: >> In git log it uses a 1-based index for the date instead of a 0 based index. >> So it says "Fri Sep 19 14:23:24 2025 -0400" when it should say "Fri Sep 18 >> 14:23:24 2025 -0400" (or "Friday 2025-8-18 14:23:24 (-4:00.00)"  to get a >> better format) > > Day of month numbers are 1-based. Correct. There are a few things in Git that are 0 based, but not so many. * parent numbers are 1-based. HEAD~1 is the "previous commit", aka "first parent". HEAD~0 is the HEAD itself. * merge parent numbers are 2-based (sanity of this statement is already questionable). If HEAD is a merge, HEAD~2 is the "(first) side branch that was merged", HEAD~3 is the "(second) side brnach that was merged (in an octopus merge), and so on. * reflog entries are 1-based. @{1} is the "previous object pointed by the current branch", @{2} is one before that. @{0} is the current branch itself. * stash entries are counted 0-based. "git stash list" shows from stash@{0} that is the most recently created stash entry.