好像走到哪裡,晃到哪裡,都有 hook 這個東西。
關於 hook
hook 的直翻是「鉤子」。但在程式的世界裡,你可以把它想像成是釣魚的那個鉤子,當有魚上鉤的時候,鉤子就會有「反應」。
這個反應就是用來通知我們「某件事情發生了」的意思。
以 Git 來說的話,可以是:
- 有人 commit 的時候通知我
- 有人 push 的時候通知我
Git 中的 hook
這些 hook 都放在 .git 裡面的 hooks 資料夾。
每個 hook 都會在特定的時機被觸發,例如說「pre-commit」這個 hook 會在「commit 之前被觸發」。
你可以利用這個 hook 來寫一段 shell script(當成是一種寫好的腳本就好)做控制,讓只有通過檢查的 commit 才會真的送出去。
- exit 0,代表成功,會執行
- exit 1,代表失敗,不會執行
如果你學過 C 語言,你可以用 C 語言會用 「return 0」來代表執行正確的概念來幫助記憶。
(我目前還不會寫 shell script,但現在只要知道 Git 有 hook 這個東西可以用就好了,以後有需要的時候自然就會去查資料了。)