Удаление репозитория на GitHub¶
Удаление репозитория на GitHub — процедура безвозвратного удаления репозитория с серверов хостинга GitHub, включающая удаление всех связанных данных: кода, истории коммитов, issues, pull request'ов, вики, страниц GitHub Pages и настроек. Операция выполняется владельцем репозитория через веб-интерфейс или программные средства и необратима: восстановить удалённый репозиторий через интерфейс GitHub нельзя, поэтому перед удалением рекомендуется создать локальную или облачную резервную копию.
¶Способы удаления
¶Через веб-интерфейс
Основной способ удаления репозитория на GitHub — веб-интерфейс. Последовательность действий:
- Авторизация в учётной записи GitHub и переход на страницу нужного репозитория.
- Открытие вкладки Settings (настройки). Вкладка доступна только владельцам репозитория и администраторам организации.
- Прокрутка страницы до самого низа, до раздела Danger Zone («опасная зона»).
- Нажатие кнопки Delete this repository.
- Подтверждение: GitHub требует ввести полное имя репозитория в формате
username/repository-name(илиorganization/repository-name) — это защита от случайного удаления. - Нажатие кнопки подтверждения I understand the consequences, delete this repository.
После подтверждения репозиторий удаляется немедленно. Если репозиторий принадлежит организации, дополнительно может потребоваться подтверждение от владельца организации.
¶Через GitHub CLI
Командная утилита GitHub CLI (gh) позволяет удалять репозиторий без веб-интерфейса:
`` gh repo delete username/repository-name --yes ``
Флаг --yes пропускает интерактивное подтверждение. Для работы требуется авторизованная сессия (gh auth login). Удаление доступно только для репозиториев, принадлежащих текущему пользователю или организациям, где пользователь имеет права администратора.
¶Через API
GitHub предоставляет REST API для программного удаления репозитория:
`` DELETE /repos/{owner}/{repo} ``
Запрос требует токен доступа с полным доступом к репозиториям (scope delete_repo). Ответ 204 No Content означает успешное удаление. Этот способ применяется в автоматизации и скриптах управления репозиториями.
¶Что удаляется
При удалении репозитория с серверов GitHub удаляются:
- весь код и файлы, загруженные в репозиторий;
- вся история коммитов, включая ветки и теги;
- issues и комментарии к ним;
- pull request'ы и связанные обсуждения;
- wiki-страницы;
- страницы GitHub Pages, размещённые в репозитории;
- настройки, включая вебхуки, секреты и переменные окружения;
- forks репозитория сохраняются как независимые копии, но теряют связь с оригиналом (указание «forked from» исчезает).
¶Ограничения и предупреждения
¶Необратимость
GitHub не предоставляет штатного механизма восстановления удалённого репозитория. Обращение в поддержку с просьбой о восстановлении, как правило, не приводит к результату: данные удаляются из рабочего хранилища. Единственный способ восстановления — клонирование репозитория на локальный компьютер или в другой сервис перед удалением:
`` git clone https://github.com/username/repository-name.git ``
¶Ограничения на удаление
- Удалить репозиторий может только его владелец или администратор организации.
- Для репозиториев организаций может потребоваться разрешение владельца организации.
- Публичные репозитории с форками от других пользователей удаляются без ограничений, но форки становятся независимыми.
- Репозиторий, включённый в список зависимостей пакетов GitHub Packages, может блокировать удаление до отвязки пакетов.
¶Архивация как альтернатива
Если репозиторий больше не развивается, но его содержимое и история ценны, альтернативой удалению служит архивация (Archive). Архивированный репозиторий остаётся доступным для чтения, но становится доступным только для чтения: нельзя создавать issues, pull request'ы и вносить изменения. Архивация выполняется на вкладке Settings в разделе Danger Zone кнопкой Archive this repository и обратима.
¶Удаление локального репозитория
Удаление репозитория на сервере GitHub не удаляет его локальную копию. Чтобы удалить локальную копию, достаточно удалить каталог репозитория на диске:
`` rm -rf repository-name ``
Для Windows:
`` rmdir /s /q repository-name ``
Команда git не имеет встроенной команды удаления репозитория: Git хранит данные в скрытом каталоге .git, и удаление каталога полностью устраняет репозиторий с диска.
¶Частые ошибки
- Нет прав доступа: кнопка Settings недоступна, если пользователь не является владельцем или администратором.
- Ошибка при вводе имени: GitHub требует точного ввода полного имени репозитория, включая имя владельца.
- Удаление вместо переименования: для изменения имени репозитория используется вкладка General и поле Repository name, удаление не требуется.
- Потеря данных: отсутствие резервной копии перед удалением приводит к безвозвратной потере кода и истории.
Источники:
- Документация GitHub: «Deleting a repository»
- Документация GitHub CLI:
gh repo delete - GitHub REST API documentation: Repositories endpoint
- Pro Git (Scott Chacon, Ben Straub): раздел о работе с удалёнными репозиториями
