Организуйте коммиты 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.
Надеюсь, вам понравится статья.
Спасибо за чтение
Надеюсь, вы найдете эти ресурсы полезными. Если вам нравится то, что вы читаете, и вы хотите узнать больше о системном дизайне, микросервисах и других связанных с технологиями вещах… Вы можете подписаться на меня на
- Twitter - Подписывайтесь на @vishnuchi
- Подпишитесь на мою еженедельную информационную рассылку здесь.