跳到主要內容
maxstudioNews
AI 自動化DEV Community (Claude Code)約 2 分鐘

在 Claude Code 中設定鉤子以阻擋危險的 Git 指令

本文介紹如何在 Claude Code 中設定一個 PreToolUse 鉤子,以防止 AI 代理執行如 `git push --force` 等危險的 Git 指令。這個鉤子能在指令執行前進行檢查並阻擋,同時向 AI 提供反饋,避免資料遺失。這項設定有助於提升 AI 開發工作流程的安全性與穩定性。

在 Claude Code 中設定鉤子以阻擋危險的 Git 指令
圖片來源:DEV Community (Claude Code)

具備 Shell 存取權限的 AI 代理,在混淆時最終可能會嘗試執行 git push --force 或 git reset --hard 等指令。您不需要監控每個指令,一個小巧的 PreToolUse 鉤子就能在這些危險指令執行前將其阻擋。

這個鉤子程式碼會讀取標準輸入中的工具呼叫 JSON,如果偵測到危險的 Git 指令,就會以結束碼 2 阻擋其執行。例如,它會檢查 git push 搭配 --force 或 -f、git reset --hard、git clean -fd、git branch -D 或 git checkout -- . 等指令。如果指令被阻擋,它會輸出錯誤訊息並告知使用者需要手動執行。

接著,將其註冊到 .claude/settings.json 檔案中,設定 PreToolUse 鉤子以使用這個 Bash 腳本。這樣一來,所有 Bash 相關的工具呼叫都會先經過這個安全檢查。

當 Claude 嘗試執行這些被列為危險的指令時,鉤子會以結束碼 2 退出,阻止該指令實際運行。同時,標準錯誤輸出的訊息會回傳給 Claude,讓它能向您解釋情況,而不是盲目地重試。

建議將阻擋模式清單保持簡短且具體,因為阻擋所有 git push 指令只會讓您想關閉鉤子。將這個鉤子提交到版本控制中,確保儲存庫中的每個人都能享有相同的安全防護。您還可以將其與 Bash 允許清單搭配使用,這樣一般的指令就不會每次都觸發提示。

作者在 Vildanden Agent Config 中,將此鉤子與 Bash 允許清單、.env 拒絕規則、/review 指令以及簡短的 CLAUDE.md 文件一同發布,其免費範例足以讓您立即嘗試這種模式。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Claude Code) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。