The best answers to the question “How to list all commits that changed a specific file?” in the category Dev.
Is there a way to list all commits that changed a specific file?
git log path should do what you want. From the
git log man page:
[--] <path>… Show only commits that affect any of the specified paths. To prevent confusion with options and branch names, paths may need to be prefixed with "-- " to separate them from options or refnames.
--follow works for a particular file
git log --follow -- filename
Difference to other solutions given
Note that other solutions include
git log path (without the
--follow). That approach is handy if you want to track e.g. changes in a directory, but stumbles when files were renamed (thus use
Use the command below to get commits for a specific file:
git log -p filename
I have been looking at this closely and all these answers don‘t seem to really show me all the commits across all the branches.
Here is what I have come up with by messing around with the gitk edit view options. This shows me all the commits for a file regardless of branch, local, reflog, and remote.
gitk --all --first-parent --remotes --reflog --author-date-order -- filename
It also works with
git log --all --first-parent --remotes --reflog --author-date-order -- filename