Git: show all commits on a given weekday
Asked Answered
N

4

9

Can I see all of the commits which were made on a Sunday? Any and all Sundays, to be clear.

Note answered 7/3, 2013 at 23:14 Comment(0)
A
7

Based on jingx's answer, the following will give you a log of all commits made on a Sunday.

git log --pretty='format:%h %cd' | grep 'Sun' |  awk '{print $1}' | while read rev; do
    git show $rev | head -6
done

Explanation

git log --pretty='format:%h %cd' gives a shortened log of all commits with their SHAs and commit dates. These dates contain day of the week as well.

grep 'Sun' filters out all lines of that log with 'Sun' on it, i.e., all commits made on Sundays.

awk '{print $1}' extracts the first word of each of these lines, i.e. the SHA values of each commit.

while read rev loops through each SHA value extracted from the previous awk. At each iteration, the SHA value will be stored in the rev variable.

git show $rev shows the log of the commit with the SHA $rev.

head -6 extracts the first 6 lines of that log.

Archaean answered 8/3, 2013 at 18:35 Comment(0)
C
4

Something like

git log --pretty='format:%h %cd' |grep Sun
Caryophyllaceous answered 8/3, 2013 at 3:17 Comment(0)
S
1

jingx's answer is correct, upvoted!

I just would like to mention that at some point I also wanted to retrieve the same kind of specificity, like any and all commits done:

  • on the -9 GMT hour
  • on the 33rd second
  • on Fri 13th
  • on 1337 files
  • with 777 impact (insertions - deletions)

...and found git log interface a bit lacking. But the data is there!

I created therefore https://github.com/dreamyguy/gitlogg, which parses commits of any number of repositories into one conveniently sanitised JSON file. Enjoy!

Schilt answered 21/5, 2016 at 23:4 Comment(0)
S
0

You can try to use:

--since and --until

key for git log command.

Sorkin answered 7/3, 2013 at 23:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.