Skip to content

Latest commit

 

History

History
36 lines (28 loc) · 1.57 KB

File metadata and controls

36 lines (28 loc) · 1.57 KB

List All Commits Where File Was Added Or Deleted

I noticed I wasn't able to find a file with a specific name anywhere in my codebase. I expected it to be there, so I wondered when it had been added and deleted from the codebase according to the git commit history.

This calls for running a git log, but with a couple flags. First, I'll include --name-status so that each commit that is listed includes the file names with the change status (i.e. A for added and D for deleted). Then the --diff-filter flag tells git that I am only looking for Added and Deleted files. Then the -- indicates that a file path will follow, even a regex pattern is valid here.

git log --name-status --diff-filter=AD -- '*_mock_payment_form.*'

I'm looking for what is called a partial in Rails. I know the filename consists of _mock_payment_form. The leading * is so that I can be vague about the directory this might be found in. That's useful if this file was potentially moved around. The trailing .* indicates the file extension which I also want to be vague about.

For any of the commits returned by this git log, I can grab the SHA and run git show <SHA> to see the full picture of that commit.

Another flag that might be useful to add is the --all flag which will look across all refs/branches instead of just the branch (main) that I'm currently on.

git log --all --name-status --diff-filter=AD -- '*_mock_payment_form.*'

Perhaps I'm thinking of a file that was added on an abandoned feature branch. --all will help turn up that in the results as well.