Организуйте коммиты Git с помощью Commitizen

Сообщения коммитов Git играют важную роль в жизни разработчиков. Если ваши сообщения фиксации git чистые и организованные, вы можете легко понять предыдущие изменения кода и сослаться на них, используя сами сообщения фиксации. Это также помогает другим товарищам по команде легко визуализировать эволюцию разработки функции или исправления ошибок шаг за шагом.

В этом сообщении блога я расскажу больше об инструменте под названием commitizen, который может помочь вашей команде с меньшими усилиями адаптироваться к написанию организованных сообщений git-коммитов.

Что такое Commitizen?

Commitizen - это инструмент, разработанный для команд.

Его основная цель - определить стандартный способ фиксации правил и передачи их с помощью интерфейса командной строки, предоставляемого commitizen.

Причина в том, что его легче читать, и он требует написания описательных коммитов.

Кроме того, наличие соглашения о ваших коммитах позволяет анализировать их и использовать для чего-то еще, например, для автоматического создания версии или журнала изменений.

Возможности

  • Утилита командной строки для создания коммитов с вашими правилами. По умолчанию для сообщений коммитов используются правила Обычные коммиты.
  • Отображение информации о ваших правилах фиксации (команды: схема, пример, информация)
  • Автоматическое повышение версии с использованием семантического управления версиями на основе коммитов. Он использует семантическое управление версиями, что означает, что он использует формат MAJOR.MINOR.PATCH для управления версиями выпусков.
  • Создайте журнал изменений, используя Вести журнал изменений.

Установка

macOS

В macOS его можно установить через homebrew:

brew install commitizen

Python
В других операционных системах его можно установить с помощью pip

  • Глобальная установка
sudo pip3 install -U Commitizen
  • Установка локального проекта
install -U Commitizen

Git Commit с использованием Commitizen

После установки commitizen вы можете запустить cz commit в своем репозитории git, и он покажет следующие параметры.

➜  course-tracker git:(master) ✗ cz commit
? Select the type of change you are committing  (Use arrow keys)
 » fix: A bug fix. Correlates with PATCH in SemVer
   feat: A new feature. Correlates with MINOR in SemVer
   docs: Documentation only changes
   style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
   refactor: A code change that neither fixes a bug nor adds a feature
   perf: A code change that improves performance
   test: Adding missing or correcting existing tests
   build: Changes that affect the build system or external dependencies (example scopes: pip, docker, npm)
   ci: Changes to our CI configuration files and scripts (example scopes: GitLabCI)

Если вы заметите, вы можете увидеть 9 вариантов, которые охватывают большую часть действий в жизненном цикле разработки, начиная с

  • Особенности
  • исправление ошибок
  • документация
  • стиль кода
  • рефакторинг
  • улучшение производительности
  • модульное / интеграционное тестирование
  • подготовить сборку
  • изменения для конвейеров CI

В этом примере я выберу docs, поскольку я внес несколько незначительных изменений в свой файл README в моем проекте. Также обновлены оставшиеся шаги, такие как добавление

  • subject за изменения в фиксации.
  • is breaking change? в этом примере это простое изменение.
➜  course-tracker git:(master) ✗ cz commit
? Select the type of change you are committing  docs: Documentation only changes
? Scope. Could be anything specifying place of the commit change (users, db, poll):
 project-setup
? Subject. Concise description of the changes. Imperative, lower case and no final dot:
 Update Setup Instructions
? Body. Motivation for the change and contrast this with previous behavior:
? Is this a BREAKING CHANGE? Correlates with MAJOR in SemVer  No
? Footer. Information about Breaking Changes and reference issues that this commit closes:
docs(project-setup): Update Setup Instructions
1 file changed, 1 insertion(+)
Commit successful!

Теперь наш журнал git будет выглядеть так, как показано ниже.

commit 22d248315af3176952d56dd0cb712667900a37ba (HEAD -> master)
Author: Vishnu Chilamakuru 
Date:   Tue Jun 1 14:20:23 2021 +0530
docs(project-setup): Update Setup Instructions

Мое сообщение о фиксации git теперь правильно организовано для соответствующих тем и вариантов использования, и легко сослаться на временную шкалу git моего проекта, чтобы указать на функции, исправления, документы и т. Д. Ниже приведен пример временной шкалы репозитория с использованием commitizen.

Надеюсь, вам понравится статья.

Спасибо за чтение

Надеюсь, вы найдете эти ресурсы полезными. Если вам нравится то, что вы читаете, и вы хотите узнать больше о системном дизайне, микросервисах и других связанных с технологиями вещах… Вы можете подписаться на меня на