Работа с репозиторием кода. 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 коллекций