How do I find the most recent git commit that modified a file?

Cory Klein picture Cory Klein · Jan 24, 2011 · Viewed 71.4k times · Source

I want to find the most recent commit that modified a source file.

I can use git blame to see all the dates for commits by each line, but it’s difficult to see exactly which commit was the last one to touch the file.

How can I find the last commit that touched a given file in my git repository?

Answer

Jo Liss picture Jo Liss · Jan 24, 2011

git log supports looking at the history of specific files (and directories), so you can call it like this:

git log my/file.c

If you really only want to list the one most recent commit, for example to use it in a script, use the -n 1 option:

git log -n 1 --pretty=format:%H -- my/file.c

--pretty=format:%h tells git log to show only the commit hash. The -- separater stops the file name from getting interpreted as a commit name, just in case it's ambiguous.