Общий доступ к хукам с Husky
Узнайте, как предоставлять хуки Git всей команде с помощью Husky, чтобы каждый автоматически запускал одинаковые проверки.
«Общий доступ к хукам с Husky» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Проблема с нативными хуками
Нативные хуки Git находятся в .git/hooks, который не фиксируется в репозитории. Поэтому участники команды не получают ваши хуки автоматически.
Что такое Husky
Husky — популярный инструмент, который хранит хуки внутри репозитория и устанавливает их для всех, чтобы вся команда выполняла одинаковые проверки.
Установка Husky
Добавьте Husky как зависимость для разработки в проекте Node.js.
npm install --save-dev huskyИнициализация Husky
Команда инициализации создаёт каталог .husky и настраивает Git на его использование.
npx husky initКак Husky перенаправляет хуки
Husky указывает Git использовать core.hooksPath для каталога .husky, зафиксированного в репозитории, вместо .git/hooks.
git config core.hooksPath .huskyДобавление хука перед коммитом
Создайте файл .husky/pre-commit, который будет выполнять команду проверки стиля или тестирования перед каждым коммитом.
echo 'npm test' > .husky/pre-commitФиксация хука
Поскольку .husky находится внутри репозитория, зафиксируйте его как любой другой файл. Участники команды получат его при следующем извлечении изменений.
git add .husky/pre-commit
git commit -m 'Add pre-commit test hook'Запуск линтеров для подготовленных файлов
Используйте Husky вместе с lint-staged, чтобы проверять только файлы, которые вы действительно подготовили, и сохранять коммиты быстрыми.
npm install --save-dev lint-stagedНастройка lint-staged
Определите в package.json, какая команда запускается для каких файлов.
{
'lint-staged': {
'*.js': 'eslint --fix'
}
}Хук для сообщения коммита
Husky также может проверять правила сообщений коммитов с помощью хука commit-msg и такого инструмента, как commitlint.
echo 'npx commitlint --edit $1' > .husky/commit-msgПропуск хуков при необходимости
В экстренных случаях можно пропустить хуки с помощью --no-verify, но это должно происходить редко.
git commit --no-verify -m 'WIP'Быстрая проверка
Проверьте, насколько хорошо вы поняли, как делиться хуками с помощью Husky.
Итоги
Вы научились делиться хуками с помощью Husky:
- Нативные хуки в
.git/hooksне являются общими - Husky хранит хуки в зафиксированном каталоге
.husky - Он перенаправляет
core.hooksPath - Используйте его вместе с lint-staged и commitlint для общих проверок команды
Часто задаваемые вопросы
Урок «Общий доступ к хукам с Husky» бесплатный?
Да — полный текст урока «Общий доступ к хукам с Husky» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Общий доступ к хукам с Husky»?
Узнайте, как предоставлять хуки Git всей команде с помощью Husky, чтобы каждый автоматически запускал одинаковые проверки. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Общий доступ к хукам с Husky»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Разбор перехватчиков Git
- Перехватчики до фиксации и после слияния
- Настройка конфигурации Git
- Общий доступ к хукам с Husky