4 phút đọc

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.

HookChạy khiDùng để
pre-commitTrước khi commitLint, format, chặn secret
commit-msgSau khi nhập messageÉp định dạng message
pre-pushTrước khi pushChạ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.