Работа с репозиторием кода. Split commits & commit message style

Для удобства навигации по истории изменений и чтения изменений твоего проекта, отделяй commit, которые содержат автоматически созданный код от твоего собственного. Пиши понятные сообщения к каждому commit.

Split commits. Дели код на свой и чужой

Пример: базовое приложение на базе фреймворков Laravel5, Yii2, Ruby-On-Rails, Django изначально включают десятки файлов и специальных директорий, которые позже приходится модифицировать или дополнять.

Для кого бы ты не создавал этот проект — для себя лично, для команды, в качестве тестового задания — изменения, связанные с включением в проект чужих решений — скелет, компоненты, расширения, плагины, библиотеки — должны быть отдельными комитами. Иначе твои пара файлов или даже пара строк среди 20-50 файлов фреймворка просто теряются. При проверке кода их просто не заметят. А значит могут пропустить ошибку.

Commit message style. Формат сообщений

Скопировал правила из нашей корпоративной документации

[<type>] <TASK> <short-commit-message>
Long well formatted commit message
  • <type>
    • [new] новая функция, новое поведение
    • [fix] исправление ошибки
    • [docs] изменения только в документации или аннотациях
    • [style] исправления, которые касаются только оформления кода без изменения поведения
    • [refactor] значительные изменения кода (декомпозиция, выделение абстракций, замена логики), которые не влияют на поведение
    • [perf] изменения, которые касаются производительности без изменения поведения
    • [test] написание новых тестов или изменения базового кода только для целей тестирования, без изменения поведения
    • [internal] изменения только для утилит, которые касаются автоматизации сборок, тестирования, установки

    Комиты делать достаточно маленькими, чтобы не мучиться, выбирая тип комита. Пожалейте тестировщика и коллег.

    Почему-то у программистов только три состояния кода: «new», «fix» и «refactor»
  • <TASK> Код задачи. Возможно, BitBucket или Github сам подставит ссылку на страницу задачи, когда смотришь историю комитов через браузерю В любом случае полезно знать, что детали по внесённому изменению можно прочитать в задаче.
  • <short-commit-message> пишется не более 72 символов, начинается с слова в нижнем регистре, present simple, от первого лица, без точки на конце
  • Long well formatted commit message — строки не более 72 символов, можно форматировать пробелами и маркерами списков («-«, «*»), вставлять гиперссылки. Не будет лишним повторить кусок описания из задачи и тестовые примеры

Пример commit message:

[new] AE-100 change collection limit to 25 for registered users, 100 for paid, still 15 for anonymous

Ввёл два новых ограничения на количество коллекций у пользователя
* Авторизованные пользователи могут создать 25 коллекций
* Платные пользователи - 100 коллекций
Анонимам как и раньше - 15 коллекций

Павел Волынцев

Уже более 15 лет занимаюсь разработкой веб-проектов. Fullstack Senior Developer. IT евангелист — доношу свет знаний об информационных технологиях. Профессиональные цели: Дать людям возможность дать людям больше.

Читайте также: