List all files in a Git commit

David Y.
jump to solution

The Problem

How do I get a list of all files that were affected by a given commit in a Git repository?

The Solution

The simplest way to do this is by using git show with the --name-only flag:

git show --name-only $COMMIT_HASH

This command will output the commit metadata, the commit message, and then a list of filenames that were added, modified, or deleted in the commit.

To see how each file was affected (added, modified, or deleted), we can use the --name-status flag instead:

git show --name-status $COMMIT_HASH 

To remove the commit message from the output, we can add the --oneline flag:

git show --name-only --oneline $COMMIT_HASH 
git show --name-status --oneline $COMMIT_HASH 

This will still show the commit metadata in the first line of the output. To produce an output containing only the names of affected files, we must specify --pretty with an empty format string:

git show --name-only --pretty=format:
Check out a remote branch in Git
David Y.
Undo git add before commit
David Y.
`git add -A` vs. `git add .`
David Y.

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry