Shout out to Emacs Ediff - it can compare files, directories, buffers (open files), regions within buffers (selected text within files, and is version control aware.
Once I learned to use Ediff with Magit there was no going back. It has been consistently the quickest and easiest thing for solving complicated merges of many files in a rebase.