n1ro°
RU

Компьютеры · Инструкция

GitHub заблокировал push из-за secret scanning: как удалить секрет правильно

Удаление токена новым commit не помогает, если секрет остаётся в более раннем commit, который тоже отправляется. GitHub

Редакция N1RO · Проверено

Короткий ответ

Если push protection нашёл реальный секрет, отзовите/ротируйте credential и удалите его из всех commits, где он присутствует. Для секрета в последнем commit исправьте файл и выполните `git commit --amend --all`, затем push.

Что делать

  1. Определите секрет: Используйте сообщение GitHub, чтобы найти тип секрета и commit.
  2. Считайте секрет скомпрометированным: Ротируйте или отзовите credential у провайдера.
  3. Последний commit: Удалите значение из файла, добавьте безопасный источник конфигурации и выполните `git commit --amend --all`.
  4. Более ранний commit: Перепишите локальную историю так, чтобы значение исчезло из каждого отправляемого commit.
  5. Повторите push: Убедитесь, что секрет не попадает ни в tracked-файл, ни в generated artifact.

Важно

Не используйте bypass для реального действующего секрета только ради прохождения push.

Что учитывать

Не используйте bypass для реального действующего секрета только ради прохождения push.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Working with push protection from the command line). Пример и формулировки — редакция N1RO на 2026-09-17.