gitgit-diff-tree

Batch run for "git diff-tree"


I need to find the changes made by each commit.

So I used git log to find the list of all commits.

Then I use git diff-tree current-commit previous-commit [some other options] to find the changes.

The problem is the repo has more than 3000 commits, so doing 3000 git diff-tree is quite time-consuming ?

Is it possible to do a single git diff-tree (fed by the list of all commits) to get all the changes.


Solution

  • git log can print the diff of each listed commit (the diff is hidden by default, turn it on with the -p|--patch option), and can take all the options accepted by git diff (--name-only, --name-status, options for merge commits, ...)


    @jthill's answer gives a set of options that basically outputs the same thing as git diff-tree for each commit.

    You would have to describe in more details what information you are interested in if you want someone to provide you with a more suitable set of options.