← ClaudeAtlas

git-guardrails-claude-codelisted

Set up Claude Code hooks to block dangerous git commands (force-push, direct push to protected branches, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
wakqasahmed/ai-engineering-workflow-skills · ★ 2 · AI & Automation · score 68
Install: claude install-skill wakqasahmed/ai-engineering-workflow-skills
# Setup Git Guardrails Sets up a PreToolUse hook that intercepts and blocks a fixed list of destructive git commands before Claude executes them. Source: adapted from [mattpocock/skills — misc/git-guardrails-claude-code](https://github.com/mattpocock/skills/blob/main/skills/misc/git-guardrails-claude-code/SKILL.md), imported 2026-08-26. Upstream blocks **every** invocation of `git push`, including plain feature-branch pushes. This adaptation narrows that to force-push and direct pushes to protected branches only, because `system-level/core.md`'s git workflow requires routine feature-branch pushes for the standard worktree → branch → push → PR flow — blocking all pushes would make this repo's own workflow unusable. The rest of upstream's blocked-command list (reset --hard, clean -f/-fd, branch -D, bare checkout/restore) is unchanged. ## What Gets Blocked - `git push` with `--force` / `--force-with-lease` / `-f` - `git push` directly to `main`, `master`, or `staging` - `git reset --hard` - `git clean -f` / `git clean -fd` - `git branch -D` - `git checkout .` / `git restore .` (bare, discards uncommitted changes) Routine `git push origin <feature-branch>` is **not** blocked. When blocked, Claude sees a message telling it that it does not have authority to run the command. ## Steps ### 1. Ask scope Ask the user: install for **this project only** (`.claude/settings.json`) or **all projects** (`~/.claude/settings.json`)? ### 2. Copy the hook script The bundled script is