The legend says real hackers commit at 3 AM. Your git history can check that, and it takes one line.
git log --author="$(git config user.email)" --date=format:%H --format=%ad |
sort | uniq -c |
awk '{c[$2]=$1; if ($1>m) m=$1}
END {for (h=0; h<24; h++) {k=sprintf("%02d",h); b="";
for (i=0; i<c[k]*30/m; i++) b=b "#"; printf "%s %5d %s\n", k, c[k], b}}'
Run it inside any repo. It prints 24 rows, one per hour, with the number of your commits at that hour and a bar.
The creator of Redis codes in office hours
I ran it on Redis with --author=antirez: 7,213 commits from 2009 to today.
00 89 ###
01 52 ##
02 29 #
03 29 #
04 11 #
05 14 #
06 12 #
07 25 #
08 80 ###
09 333 ###########
10 715 ########################
11 924 ##############################
12 772 ##########################
13 457 ###############
14 284 ##########
15 627 #####################
16 858 ############################
17 752 #########################
18 526 ##################
19 209 #######
20 94 ####
21 78 ###
22 108 ####
23 135 #####
His peak is 11 AM. There is a dip at 2 PM, the hour after lunch, and a second peak at 4 PM. Between 3 and 6 AM he made 54 commits in 17 years. One of the most-used databases on earth was written mostly between breakfast and dinner.
How it works
-
--date=format:%Hprints only the hour of each commit, in the author's own time zone at the moment of the commit. A commit at 2 AM in Tokyo counts as 2 AM. -
sort | uniq -ccounts the commits per hour. - awk fills in the hours with no commits and scales the longest bar to 30 characters.
- Your email in old commits may differ from the one in your config. Use
--author="Your Name"then; it matches part of the name or the email. - For every repo in a folder, wrap the
git login a loop:for d in ~/code/*/; do git -C "$d" log ...; done, then pipe the whole loop into the samesort | uniq -c | awk.
Then the other half: your last 30 days
The hours come from your machine. Your days are public: the green squares on your GitHub profile. We made a monkey, Jitters, who lives those 30 days. Type your handle at vibeoverflow.lol and he shows the month you had: on the sofa after a quiet week, on his toes during a streak, shaking on his eighth coffee if you push ten times a day.
Your peak hour can also go on a mug, under him: the same page takes the hour you type and puts it on the mug in the cart.
What is your peak hour? Post your bars below. Does anyone here really peak at 3 AM?
The Vibeoverflow team

Top comments (0)