git diff of a file between two commits

C++
$ git diff HEAD^^ HEAD main.c
$ # show diff between HEAD(current commit) and HEAD^^(two commits back) for main.c
git diff <branch_hash> <other_branch_hash> -- <file_path>A simple way to do it is:

create and checkout branch tmp at branch_a (git branch tmp branch_a && git checkout tmp)
git reset --soft branch_b
git commit
that commit must have all the diff


Source

Also in C++: