Git Commit Convention

RS School использует Conventional Commits с дополнением — timestamp в скобках в конце каждого commit-сообщения.

Формат

<type>: <description> (<weekday>, <month> <date>, <year> <time>)

Типы

Тип Когда
init первый коммит / старт задачи
feat новая функциональность
fix багфикс
refactor рефакторинг без изменения поведения
style форматирование, CSS-правки, не затрагивающие логику
docs README, комментарии
chore конфиги, зависимости, инфраструктура
test тесты
perf оптимизация производительности

Примеры

init: start cssMemeSlider-task (Mon, Sep 13, 2021 10:12:24 PM)
feat: add basic page layout (Mon, Sep 13, 2021 10:25:24 PM)
fix: correct mobile breakpoint at 500px (Tue, Sep 14, 2021 09:30:11 AM)
style: tune slider transition timing (Tue, Sep 14, 2021 09:45:00 AM)

Shell-сниппет для timestamp

Linux/macOS

git commit -m "feat: add slider controls $(LC_ALL=C date '+(%a, %b %d, %Y %r)')"

Windows PowerShell

git commit -m "feat: add slider controls $(Get-Date -Format '(ddd, MMM dd, yyyy hh:mm:ss tt)')"

Windows Git Bash

git commit -m "feat: add slider controls $(LC_ALL=C date '+(%a, %b %d, %Y %r)')"

Требования к истории

  • Минимум 5 коммитов на задачу (для CSS Meme Slider, для остальных — больше)
  • История должна отражать реальный процесс, не "один dump-коммит в конце"
  • За dump-историю в JS30 и HTML Builder есть штраф -10

Где взять полное соглашение

Связанное