Skip to main content

Searching for a Git commit by name with grep

Posted in Development and Git

Sometimes I need to find a commit. It’s easy if the commit I’m looking for was very recent – a quick git log will do the job.

If the commit I’m after was a few weeks ago, it’s likely that I’m going to have some scrolling to do. git log is quite noisy, so I might add --oneline to keep it easy to scan.

But what if the commit I’m after was last year? I’m going to have to do a lot of scrolling! That’s where --grep comes in.

I wanted to reference some work I did on the <address> element in an article I wrote earlier this week, so I filtered my git log like this:

git log --grep="address" --oneline

This gave me a dozen or so results. Much easier to find what I was after!

Once I had the commit, I copied the commit hash and took a closer look with git show d773c20, and this was what the commit looked like:

commit d773c20fd45d993d96abe7f42e0336b8f3ff8e35
Author: Martin Underhill <martin@tempertemper.net>
Date: Thu Jun 27 21:13:26 2019 +0100

Adds role of group to address to stop duplicate contentinfo

diff --git a/src/site/_includes/footer.html b/src/site/_includes/footer.html
index b7a1e44..247838b 100644
--- a/src/site/_includes/footer.html
+++ b/src/site/_includes/footer.html
@@ -12,7 +12,7 @@
</nav>
<div class="copyright">
<p>&copy;&nbsp;copyright 2009&nbsp;to&nbsp;2021</p>
- <address class="adr">
+ <address class="adr" role="group">
<span class="org">tempertemper Web Design Ltd</span>,
<span class="extended-address">Clavering House</span>,
<span class="street-address">Clavering Place</span>,
(END)

Exactly what I was after! I then used the date to find the PR that the commit was part of and, in turn, the link to the commit on GitHub.

This exercise was also a good reminder to keep commits small and regular, and to name them descriptively!

Subscribe

If you enjoyed reading this and want a monthly roundup of my articles delivered to your inbox, just enter your email below.

I don’t collect any data on when, where or if people open the emails I send them. Your email will only be used to send you newsletters and will never be passed on. You can unsubscribe at any time.

More posts

Here are a couple more posts for you to enjoy. If that’s not enough, have a look at the full list.

  1. If HTML and ARIA don’t allow it, it’s probably a bad idea

    I like to use invalid HTML and ARIA as a design constraint; a line I can’t step across. Sounds obvious, but in practice it’s not always that simple!

  2. Mac event 2021

    Apple had their final event of the year last night and it was especially exciting as I’m in the market for a new Mac. Here are my thoughts.