GNU Emacs has the very good "ediff" mode. I use it and press a or b frequently.
And power users get even more fancy, e.g. : https://emacs.stackexchange.com/questions/16469/how-to-merge-git-conflicts-in-emacs
And it has lots of powerful features. Expanded help menu:
WowI highly recommend committing the capabilities shown in the menu to memory, so you use them when they'd be useful. (Wow, I haven't looked at the menu in so long it has features I forgot it had.)
Emacs is available for every *nix platform. And its as open source as it gets.
I use itediff so often that typing M-x ediff took too long, so I bound it to C-c C-e.

