Say I have a file foo.js
that was committed some time ago. I would like to simply find the commit where this file was first added.
After reading the answers and my own tinkering, this works for me:
git log --follow --diff-filter=A --find-renames=40% -- foo.js
Here's a simpler, "pure Git" way to do it, without any pipeline needed:
git log --diff-filter=A -- foo.js
Check the documentation. You can do the same thing for Deleted, Modified, etc.
I have a handy alias for this, because I always forget it:
git config --global alias.whatadded "log --diff-filter=A"
This makes it as simple as:
git whatadded -- foo.js
The below one-liner will recursively search through subdirectories of the $PWD
for foo.js
without having to supply an absolute or relative path to the file, nor will the file need to be in the same directory as the $PWD
:
git log --diff-filter=A -- **foo.js