Быстрая навигация
Основные команды
Большинство команд ниже собрано на it-tools.tech и дополнено практикой повседневной разработки.
Синий текст в блоках кода можно редактировать, чтобы быстро изменить и скопировать пример.
Настройка
Задайте глобальные имя пользователя и адрес электронной почты:
git config --global user.name "WaLudo"
git config --global user.email "[email protected]" Начало проекта
Инициализируйте новый Git-репозиторий:
git init Клонируйте существующий Git-репозиторий:
git clone https://github.com/WaLudo/waludo-tools.git Коммиты
Зафиксируйте все отслеживаемые изменения:
git commit -am "feat: add two cups of coffee" Зафиксируйте все изменения:
git add .
git commit -m "feat: add five cups of coffee" Добавьте новые изменения к последнему коммиту:
git commit --amend --no-edit Что-то пошло не так
Измените сообщение последнего коммита:
git commit --amend Отмените последний коммит, сохранив изменения:
git reset HEAD~1 Отмените последние N коммитов, сохранив изменения:
git reset HEAD~N Отмените последний коммит и удалите все изменения:
git reset HEAD~1 --hard Верните локальную ветку к состоянию удалённого репозитория:
git fetch origin git reset --hard origin/branch-name Прочее
Переименуйте локальную ветку master в main:
git branch -m master main Соглашение о коммитах
Обратитесь к спецификации Conventional Commits v1.0.0.
Проверка коммита
git commit -m "feat(scope): description" Краткий справочник типов
| Тип | Описание |
|---|---|
| fix | Исправляет ошибку |
| feat | Добавляет новую функцию |
| build | Изменяет систему сборки (зависимости, внешние интерфейсы, версию Node и т. п.) |
| chore | Изменяет не бизнес-логику (процесс сборки, настройки инструментов и т. п.) |
| ci | Изменяет конфигурацию непрерывной интеграции (CI/CD) |
| docs | Изменяет документацию (README, документацию API и т. п.) |
| style | Меняет стиль кода без изменения логики |
| refactor | Перестраивает код без изменения поведения |
| perf | Улучшает производительность |
| test | Изменяет тестовые случаи |
Область Scope
После типа можно указать область в скобках, чтобы добавить контекст:
feat(parser): adds ability to parse arrays
Критические изменения
Восклицательный знак обозначает критическое изменение и может использоваться с любым типом:
feat(api)!: send an email to the customer when a product is shipped
Того же результата можно добиться, указав BREAKING CHANGE в футере.
Многострочное тело и футер
Пример коммита с многострочными телом и футером:
fix: prevent racing of requests
Introduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.
Remove timeouts which were used to mitigate the racing issue but are
obsolete now.
Reviewed-by: Z
Refs: #123
Полная спецификация
Ключевые слова MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY и OPTIONAL следует толковать согласно RFC 2119.
- Каждый коммит MUST начинаться с типа, затем могут идти OPTIONAL область, OPTIONAL восклицательный знак и REQUIRED двоеточие с пробелом
- Новая функция MUST использовать тип feat
- Исправление ошибки MUST использовать тип fix
- Область MAY следовать за типом; это MUST быть существительное, описывающее часть кодовой базы в скобках, например fix(parser):
- Описание MUST сразу следовать за двоеточием и пробелом после префикса типа и области
- После краткого описания MAY идти расширенное тело, которое MUST начинаться после пустой строки
- После ещё одной пустой строки MAY идти один или несколько футеров; каждый футер MUST содержать токен и разделитель
- Токен футера MUST использовать дефис вместо пробелов, например Acked-by; исключение — BREAKING CHANGE
- Критическое изменение MUST отмечаться ! в префиксе или футером BREAKING CHANGE: описание
- Если используется !, BREAKING CHANGE: MAY быть опущено в футере, а описание SHOULD объяснять изменение
- Помимо feat и fix MAY использоваться другие типы, например docs: updated ref docs.
- Инструменты спецификации MUST разбирать информационные элементы без учёта регистра, но BREAKING CHANGE MUST оставаться в верхнем регистре
- BREAKING-CHANGE MUST быть синонимом BREAKING CHANGE в качестве токена футера