Husky 🐶 讓你的 Git 可以做其他事情
- 在Git的世界裡,Hook是用來提醒發生了某件事情用,可以是提醒、或是告警,概念類似用鉤子釣魚,當魚上鉤了,鉤子就會抖動
- 檔案位於 .git 內的 hooks 資料夾內

- 實際應用如當要對版本作封裝Commit時,可以客製化檢查一些東西,例如程式碼是否符合規範,或是不能修改到某某檔案之類的,若不符合規定則會跳出對應的告警訊息
- 以老師的pre-commit.sample範例來看,當裡面的內容修改後,在進行Commit時就會跳出對應的訊息
- 老師講的內容不多,等後續有遇到再補充


老師實際使用的 git hook 在 commit 時使用 ESlint 檢查的方式
20 - Husky - Git Hooks 工具 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
- 老師額外安裝了 Husky 和 lint-staged 兩個工具
- Husky 是一個用來管理 Git hooks 的工具。Git hooks 是一些腳本,可以在 Git 的各種事件(例如 commit、push)觸發時運行。Husky 使得配置和管理 Git hooks 變得更加簡單和直觀。
- lint-staged 是一個工具,用於在暫存區的文件上運行 linters 或其他命令。這意味著你可以在 Git commit 前僅對已經修改並被暫存的文件進行檢查和修復,而不是對整個代碼庫進行操作。
- 總的來說,Husky 是主體,用於快速設定 Git hooks 的工具,lint-staged 則是檢查需要被 commit 的內容是否符合 lint,減少效能消耗
- 使用上相對來說算簡單,首先須使用 npm 安裝並使用 npx 初始化 (記得要安裝在 dev 開發者模式)。關於 npm 和 npx 的關係,請參考NPM-Node Package Manager簡述
npm install --save-dev husky lint-staged
npx husky-init // 官方建議指令
-- 如果後續執行有跳出錯誤異常如 npm test 之類的,請執行下面一段再初始化安裝 .husky 一次
npx husky install .husky