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?
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.