The diff/merge tools shipped with Perforce are good.
They can be used with git as well.
They can be used with git as well.
(I'm not affiliated with them in any way)
I recommend Perforce's as a merge tool because it is better than average at the specific task of merging.
This can be frustrating at times, since many code bases cannot be reformatted or refactored because it affects version control history.
Nowdays I'm using webstorm and it's differ/merger is very very good, but ymmv.
An underused feature is "local history", which is a local cache of all local changes. This can be a lifesaver sometimes.