zs-gdiff is a GUI syntax-aware diff that uses Qt5. See zs-diff(1) for more details and comparison against other tools.
The tool can either accept two files on command-line, be integrated with git
by its means (yet using external GUI tools from git
isn't very convenient in
general) or pick up list of changed files in the repository (staged or unstaged
in index or from a commit) by itself. The latter way of using zs-gdiff
with
git
doesn't require any configuration and allows going through files without
restarting it, unlike when git
invokes external tools.
It works, but it's far from being polished.
zs-gdiff
[options...]
old-file new-file
To be used in a shell.
zs-gdiff
[--cached
]
To be used in a shell to view staged/unstaged changes.
zs-gdiff
git-reference
To be used in a shell to view commit changes.
zs-gdiff
[options...]
path old-file old-hex old-mode
new-file new-hex new-mode
When Git calls external diff for a changed file.
zs-gdiff
[options...]
path old-file old-hex old-mode
new-file new-hex new-mode
new-path rename-msg
When Git calls external diff for renamed and possibly changed file.
--cached
use staged changes instead of unstaged
zograscope(7) for common options and list of all tools there.