Mensajes de commit personalizados en Git

Publicado: 10/03/2020 | Tiempo de lectura: 2 min | Modificado: 10/03/2020

git
terminal
post-image

He estado usando la herramienta CMF durante el último año y creo que su simplicidad es su potencial. Básicamente es una herramienta de terminal desarrollada en Go por Walmart Digital que te ayuda a estandarizar el log de commits de tus proyectos.

Lo he estado usando durante el último año y medio aproximadamente y todo lo que puedo decir es muy útil. Acordamos con el equipo la configuración que queremos utilizar y definimos un conjunto de cambios que aplica en nuestro caso. También elegimos el Jira flow y cambiamos los valores para el cambio agregando un emojis para hacer las confirmaciones un poco más divertidas para comprobarlos en el registro.

Puede instalarlo a través de npm:

npm install -g go-cmf

o desde Go:

go install github.com/walmartdigital/commit-message-formatter

Después de eso, abra una terminal y navegue hasta la raíz del proyecto que desea usar. Luego escriba:

cmf init 

Deberá seleccionar uno de los flujos y creará un archivo .cmf.yaml con la plantilla del seleccionado. Puede editar ese archivo de la forma que desee. La condición única es que cualquier variable que desee utilizar debe definirse mediante {{}}. Ejemplo: {{CHANGE}} le preguntará el “CAMBIO” que hizo y mostrará las opciones que definió en la plantilla.

Aquí está el archivo .cmf.yaml que estoy usando en este sitio:

PROMPT:
    - KEY: "CHANGE"
      LABEL: "Type of change"
      OPTIONS:
        - VALUE: "feat :sparkles:"
          DESC: "A new feature"
        - VALUE: "fix :bug:"
          DESC: "A bug fix"
        - VALUE: "test :rotating_light:"
          DESC: "Adding missing tests or correcting wrong ones"
        - VALUE: "style :lipstick:"
          DESC: "A code change to improve clean code"
        - VALUE: "build-ci :construction_worker_man:"
          DESC: "Changes that affect the build system and/or CI configuration files and scripts"
        - VALUE: "refactor :hammer:"
          DESC: "A code change"
        - VALUE: "docs :books:"
          DESC: "Documentation only changes"
        - VALUE: "chore :card_index:"
          DESC: "Changes that don't fit any of the options above"
    - KEY: "MESSAGE"
      LABEL: "Commit message"
TEMPLATE: "{{CHANGE}}: {{MESSAGE}}"