將想要執行的 script 命名為 pre-commit,放在專案 .git/hooks/ 目錄底下: your_repo/.git/hooks/pre-commit

記得把 pre-commit 設定成可執行的權限 ($ chmod +x pre-commit)。

例如希望在每次 commit 之前都執行一次 Elixir 的 format check: $ mix format --check-formatted

pre-commit 的內容如下:

#!/bin/bash
cd `git rev-parse --show-toplevel`
mix format --check-formatted
if [ $? == 1 ]; then
   echo "commit failed due to format issues..."
   exit 1
fi

只要 pre-commit script 的 exit code 不等於零就會終止 commit,若要跳過已設定好的 pre-commit hook 可在 commit 後面加上 —no-verify option:$ git commit --no-verify

參考

⤧  Previous post [PHP] Exception: Call to undefined function curl_init() ⤧  Next post 使用 Phoenix.LiveComponent 保存狀態的代價