К основному содержанию
хук

force-push-blocker — хук для Claude Code: что делает и как установить

Блокирует попытки Claude Code отправить изменения в Git с флагами принудительной перезаписи истории.

Установить в Claude Code · Через claude-code-templates Все способы и платформы ↓
npx claude-code-templates@latest --hook security/force-push-blocker
Открыть на GitHub

Что делает force-push-blocker

Хук перехватывает вызовы инструмента Bash перед их исполнением через событие PreToolUse. Внутри настроены фильтры по шаблонам команд: скрипт ловит вызовы вида git push *--force* и git push *-f*. Это предотвращает перезапись удалённой ветки при неосторожных действиях агента.

Когда условие совпадает, хук возвращает JSON с решением deny и причиной блокировки. Команда не выполняется, а история репозитория остаётся целой.

Правило отсекает не только прямой --force, но также короткий ключ -f и вариант --force-with-lease. Если в проекте действительно понадобится переписать удалённую ветку, запускать такую команду придётся вручную в своём терминале.

Какие задачи решает

  • заблокировать случайный git push --force от агента
  • защитить удалённые ветки от перезаписи истории через git push -f
  • остановить отправку правок с флагом --force-with-lease через PreToolUse

Примеры запросов агенту

  • Попробуй выполнить git push --force в origin main
  • Сделай git push -f в текущую ветку
  • Отправь ветку с флагом --force-with-lease

Как установить force-push-blocker

1Через claude-code-templates

npx claude-code-templates@latest --hook security/force-push-blocker

2Вручную: положить файлы

.claude/settings.json

Блок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json

По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду

Вопросы о force-push-blocker

Как установить force-push-blocker в Claude Code?

Выполните команду npx claude-code-templates@latest --hook security/force-push-blocker, либо добавьте конфигурацию хука в файл .claude/settings.json.

Что делает force-push-blocker?

Он проверяет вызовы терминала на стадии PreToolUse и отклоняет запуск команды git push, если в ней указаны флаги принудительной отправки.

Какие варианты флагов отслеживает хук?

Шаблоны перехватывают флаги --force, --force-with-lease и короткий флаг -f.

Исходный текст

force-push-blocker.json · MIT
{
  "description": "Block git force push commands using the if condition for efficient filtering. Prevents accidental force pushes that can overwrite remote history. Covers --force, --force-with-lease, and the -f shorthand.",
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "if": "Bash(git push *--force*)",
            "command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"deny\",\"permissionDecisionReason\":\"Force push is blocked by hook\"}}'"
          },
          {
            "type": "command",
            "if": "Bash(git push *-f*)",
            "command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"deny\",\"permissionDecisionReason\":\"Force push (-f) is blocked by hook\"}}'"
          }
        ]
      }
    ]
  }
}

© davila7 · MIT · davila7/claude-code-templates

Похожие хуки

Все хуки по теме «Безопасность» →

Из того же набора804

Весь набор →
langsmith-tracing Отправляет трейсы диалогов Claude Code в LangSmith для мониторинга и отладки сессий. Срабатывает автоматически в фоне после каждого ответа модели. 204установок tdd-gate Хук блокирует правку production-файлов, пока рядом нет теста. Пригодится, если хотите удержать TDD в работе с агентом. 192установок debug-window Открывает окно с живым хвостом лога отладки, когда Claude запущен с флагом --debug или -d, и закрывает его по концу сессии. 189установок plan-gate Хук проверяет наличие свежей спецификации перед изменением кода и показывает предупреждение, если .spec.md не найден. 182установок console-log-cleaner Хук ищет вызовы console. при редактировании JavaScript- и TypeScript-файлов в production-ветках. Помогает заметить отладочный вывод до слияния изменений. 165установок change-logger Хук пишет каждое изменение файла в CSV: время, инструмент, путь, действие и детали. Пригодится, когда готовишь демо и нужно показать, что именно агент трогал. 163установок subagent-read-only-guard Хук PreToolUse запрещает субагентам Claude Code менять файлы и выполнять небезопасные команды в терминале. 105установок edit-audit-log Хук записывает в проектный журнал путь каждого файла, изменённого инструментом Edit, и время правки. Пригодится, если нужно проследить изменения между сессиями. 103установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой