List all modified files in git merge commit - even the fast forwarded

GitMergeGit BranchGit Merge

Git Problem Overview


I'm thinking if there is a way that when I merge a branch into another branch that ALL changed files are listed in my commit message and not just the ones which were modified in both branches. This would give me a better overview of what was changed in the branch just by seeing the merge commit. Is there a way to do this?

Git Solutions


Solution 1 - Git

I don't know how to do that in the commit message. But after the merge, this will give the names of all the files affected by the merge commit:

git log -m --name-only

For only a list of filenames of the commit:

git log -m -1 --name-only --pretty="format:" <Merge SHA>

There is some white space due to the merge having two parents but that can be easily removed.

Solution 2 - Git

You can also use the diff command to see the difference between any two commits. If the branches haven't been merged yet, you can specify the branch names and compare them, otherwise you might need to find where they diverged (like so) an the last commit before they were merged back together.

git diff --name-status <commit> <commit>

> -name-status Show only names and status of changed files. 

Solution 3 - Git

suppose you have SHA of your merge commit, then git diff --name-only <SHA>^1 <SHA>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsoupdiverView Question on Stackoverflow
Solution 1 - GitSchleisView Answer on Stackoverflow
Solution 2 - GitRomanView Answer on Stackoverflow
Solution 3 - GitevgeniiView Answer on Stackoverflow