That's a false dichotomy. You can do both. The problem with relying only on commit messages, is that someone examining the code does not see it. You need to dig through the history. People don't do that nearly as often as reading the code.
But if you leave a comment with what the issue is, and add a reference to the commit message, you've got the best of both worlds.
But if you leave a comment with what the issue is, and add a reference to the commit message, you've got the best of both worlds.