Git Hook
Git Hook
Muốn tự động lint trước khi commit, hay chặn push code lỗi? Git hook làm điều đó: script tự kích hoạt theo sự kiện Git.
1. Hook là gì?
Git hook là script Git tự chạy khi một sự kiện xảy ra. Chúng nằm trong .git/hooks/; đặt file thực thi đúng tên là hook hoạt động. Exit code khác 0 sẽ chặn thao tác.
| Hook | Chạy khi | Dùng để |
|---|---|---|
pre-commit | Trước khi commit | Lint, format, chặn secret |
commit-msg | Sau khi nhập message | Ép định dạng message |
pre-push | Trước khi push | Chạy test, chặn push lỗi |
# .git/hooks/pre-commit
#!/bin/bash
npm run lint || exit 1 # exit khác 0 hủy commit
2. Hạn chế cần biết
Thư mục .git/hooks/ không được commit, nên hook không tự đến với cả team — dùng Husky hoặc pre-commit framework để chia sẻ. Hook chạy local nên dev bỏ qua được bằng --no-verify.
Cách nhớ nhanh
Hook = trigger tự động quanh thao tác Git. pre-commit chặn commit xấu, pre-push chặn push lỗi. Là tuyến phòng thủ đầu — kiểm tra quan trọng vẫn phải lặp lại ở CI.