When resolving merge conflicts in git, it is, of course, critical that the finally committed result has been manually reviewed to be sensible, complete, and correct. This is why it is particularly absurd that (as of writing, and for many years prior) git always includes the --auto
argument when invoking KDiff3 as its mergetool. This causes KDiff3 to save and exit, without allowing the user to review the results of its automatic merge, if it has decided upon unambiguous resolutions for every change.
Note this doesn't imply that KDiff3 decided upon the correct resolution for every change. I've been burned by this on more than one occasion. Don't get me wrong: I'm not saying KDiff3's choices are regularly wrong (they're typically very good). But it is not sufficiently reliable that it can be left to operate without supervision by default—yet, that is how git chooses to operate it.
Now, I realise it's still possible to review the contents of the git index before committing the merge result, but that's considerably less convenient than reviewing at the time of the merge itself: you lose the ability to see where individual changes originated from. And if you're doing a big merge [...]