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;2020</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!

Get them delivered!

If you enjoyed this and want all the latest articles delivered to your inbox every month, pop your email in the form 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. Accessibility issues when removing list markers

    If we remove the list markers from an ordered or unordered list, we’re likely to run into some issues with VoiceOver.

  2. Custom unordered list markers, done right

    Did you know you can choose any icon you like for unordered/bulleted lists with a single line of CSS? Any Unicode character; no hacky CSS!