Conventional Commit Standard [0] aims to solve this problem. Added to it is a good ecosystem of tools like Commitlint [1], Commitzen [2], Semantic Release [3] etc.
[0] https://www.conventionalcommits.org/en/v1.0.0-beta.2/
[1] https://github.com/conventional-changelog/commitlint