Emacs comes with log-edit.el a mode for editing commit messages for various version control systems. It is used by VersionControl.

It appears that not every Git user was aware of its existence or wanted to write another mode from scratch for some other reason. So various implementations of git-commit[-mode].el exist.

Git CategoryVersionControl