git show commit in beyond compare
I would like to see a specific commit in Beyond Compare or any other separate diff tool while viewing it via
git show. I tried looking at help of git show/difftool/config but couldn’t find anything. Does anyone know how it can be done?
I’ve looked at Git Diff with Beyond Compare and configured Beyond Compare for
git difftool but I also want to use it as tool from
6 Solutions collect form web for “git show commit in beyond compare”
I managed to use
git difftool to see commits that I normally used to see via
git show $commit translates to
git difftool $commit^ $commit.
The above command shows difference between commit’s parent ($commit^) and commit. All this is of course after configuring Beyond Compare with difftool.
You can also create an alias “showtool” to wrap the call to
set +o histexpand git config --global alias.showtool "!sh -c 'if [ -z \$1 ]; then REVISION="HEAD"; else REVISION="\$1"; fi; git difftool \$REVISION~ \$REVISION' -"
.. then you can execute:
git showtool 81e945b
.. or just
.. as a shortcut for
git difftool 81e945b~1 81e945b to show the changes introduced in
81e945b using the configured difftool, or in the second case
git difftool HEAD~1 HEAD
Once you have a diff tool set up, like the awesome p4merge, you can do this:
git diff HEAD HEAD~1
Works like a charm.
Similarly if you want to see the commit before that, you can do:
git diff HEAD~1 HEAD~2
This worked for me nicely, to show the diff of the last commit
git difftool HEAD~ HEAD
For other commits you can replace
HEAD with commit hash eg:
git difftool 1234ABCD~ 1234ABCD
I think that git show is based on the tool set in the GIT_PAGER variable. I don’t use Beyond Compare but i think that you can try something like this:
$ GIT_PAGER='bc3' git show <whatever>
Maybe you should fill the GIT_PAGER variable with some additional parameter that allows bc3 process the input.
There are more suitable ways to persist the pager. This question can give you more tips about how to do it.
Based on @javabrett answer I have created
to support commands like
$ git showtool -y :/my\ commit\ message