List all files in a Git commit
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:
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.