Хуки в git — это не что иное, как некоторый код, который может выполняться в определенных точках во время процесса выполнения git.

Они используются для проверки того, что все соответствует ожиданиям, до или после выполнения команды или действия git. Некоторые распространенные приложения включают форматирование кода перед фиксацией, выполнение шага сборки перед отправкой кода в производство и т. д.

Вы можете создавать хуки в каталоге .git/hooks, а можете автоматизировать процесс с помощью хаски!

Предпосылки :- nodejs

Установка Хаски

npm install husky --save-dev

Инициализация хуков Git

npx husky install

Это позволит вам добавить git-хуки в ваш проект.

Здесь следует отметить, что при совместной работе участникам необходимо запустить эту команду после клонирования проекта, чтобы включить git-хуки. Но вы можете обойти этот шаг, добавив скрипт prepare в свой файл package.json.

Он будет запущен, когда вы выполните npm install в своем проекте, поэтому вам не нужно выполнять npx husky install вручную.

Для этого добавьте следующий скрипт в package.json,

"scripts": {
    "prepare": "husky install"
}

Но есть еще одна загвоздка. Сценарий prepare также будет работать в производственной среде, но он нужен вам в производственной среде как таковой, поэтому существует множество способов отключить его в производственной среде, один из них — с помощью пакета is-ci npm.

Пакет is-ci проверит, выполняется код на сервере непрерывной интеграции или нет.

npm install is-ci --save-dev

Просто измените сценарий подготовки на следующий.

"scripts": {
    "prepare": "is-ci || husky install"
}

Добавление хуков Git

Например, если вы хотите отформатировать свой код с помощью инструмента форматирования перед фиксацией кода, вы можете добавить git hook, чтобы сделать это, используя следующую команду:

npx husky add .husky/pre-commit "npm run format"

Замените npm run format командой, которая отформатирует ваш код.

Вы можете заменить pre-commit другим хуком, например pre-push, post-commit, post-checkout и т. д.

Другой пример: если вы хотите минифицировать javascript перед запуском в производство, вы можете использовать pre-push git hook.

npx husky add .husky/pre-push "npm run minjs"

Добавить скрипт

"scripts": {
    "minjs": "terser js/app.js --compress --mangle --output js/app.min.js"
}

Найдите список различных git hooks на официальном git site.

Вы увидите, что в вашем проекте создается папка .husky, и внутри нее будут файлы для всех git-хуков, которые вы создали.

Обязательно запустите git add после внесения любых изменений. Наконец, запустите команду или действие git, и ваши перехватчики git будут выполнены.

Вот и все. Чтобы узнать больше о применении git hooks, прочитайте эту статью.

Подписание.

Первоначально опубликовано на https://syntackle.live 9 октября 2022 г.