Commitizen is a tool built for create good commits for a clean and readable git history.
This tool follow the Conventional Commit specs and some best practices described in this slides
You can install it easily with composer
$ php composer.phar require --dev damianopetrungaro/php-commitizen
Usage is simple too
$ php vendor/bin/php-commitizen commit
You can also
- pass a flag for add all the file to the stage:
-a
- specify a custom configuration file adding the file path as argument
You can ask for more information using: $ php vendor/bin/php-commitizen commit --help
The configuration file must return an array (or partial override)
<?php
return [
'type' => [
'lengthMin' => 1, // Min length of the type
'lengthMax' => 5, // Max length of the type
'acceptExtra' => false, // Allow adding types not listed in 'values' key
'values' => ['feat', 'fix'], // All the values usable as type
],
'scope' => [
'lengthMin' => 0, // Min length of the scope
'lengthMax' => 10, // Max length of the scope
'acceptExtra' => true, // Allow adding scopes not listed in 'values' key
'values' => [], // All the values usable as scope
],
'description' => [
'lengthMin' => 1, // Min length of the description
'lengthMax' => 44, // Max length of the description
],
'subject' => [
'lengthMin' => 1, // Min length of the subject
'lengthMax' => 50, // Max length of the subject
],
'body' => [
'wrap' => 72, // Wrap the body at 72 characters
],
'footer' => [
'wrap' => 72, Wrap the footer at 72 characters
],
];