How to have 'git log' show filenames like 'svn log -v'
For full path names of changed files:
git log --name-only
For full path names and status of changed files:
git log --name-status
For abbreviated pathnames and a diffstat of changed files:
git log --stat
There are a lot more options. Check out the documentation.
NOTE: git whatchanged
is deprecated, use git log
instead
New users are encouraged to use git-log[1] instead. The
whatchanged
command is essentially the same as git-log[1] but defaults to show the raw format diff output and to skip merges.The command is kept primarily for historical reasons; fingers of many people who learned Git long before
git log
was invented by reading Linux kernel mailing list are trained to type it.
You can use the command git whatchanged --stat
to get a list of files that changed in each commit (along with the commit message).
References
- https://git-scm.com/docs/git-whatchanged
git show
is also a great command.
It's kind of like svn diff
, but you can pass it a git commit hash and see that diff.
If you want to get the file names only without the rest of the commit message you can use:
git log --name-only --pretty=format: <branch name>
This can then be extended to use the various options that contain the file name:
git log --name-status --pretty=format: <branch name>
git log --stat --pretty=format: <branch name>
One thing to note when using this method is that there are some blank lines in the output that will have to be ignored. Using this can be useful if you'd like to see the files that have been changed on a local branch, but is not yet pushed to a remote branch and there is no guarantee the latest from the remote has already been pulled in. For example:
git log --name-only --pretty=format: my_local_branch --not origin/master
Would show all the files that have been changed on the local branch, but not yet merged to the master branch on the remote.