Как удалить репозиторий с GitHub: пошаговое руководство
Удаление репозитория с GitHub — необратимое действие. После него весь код, история коммитов, issue и pull request будут утеряны навсегда. Убедитесь, что понимаете последствия, прежде чем продолжать.
Перед удалением: создайте резервную копию #
Если история репозитория может понадобиться в будущем — сделайте копию:
# Bare clone: копия со всей историей, ветками и тегами
git clone --bare https://github.com/your-username/my-repo.git my-repo-backup.git
# Обычный clone (рабочая директория + история)
git clone https://github.com/your-username/my-repo.git my-repo-backup
# Архив zip с папкой .git
# (вручную скопируйте папку проекта)
Bare clone идеален для долгосрочного хранения — занимает меньше места и содержит полную историю.
Пошаговое удаление репозитория на GitHub #
1. Перейти в репозиторий на GitHub:
https://github.com/your-username/my-repo
2. Нажать вкладку Settings (правее других вкладок)
3. Прокрутить вниз до раздела "Danger Zone"
4. Нажать "Delete this repository"
5. Прочитать предупреждение
6. Ввести полное имя репозитория для подтверждения:
your-username/my-repo
7. Нажать "I understand the consequences, delete this repository"
Репозиторий удалён. Все URL, issue, pull request и история недоступны.
Что происходит после удаления #
На GitHub: репозиторий исчезает немедленно. URL возвращает 404. Форки репозитория становятся независимыми репозиториями. GitHub может хранить данные для возможности восстановления 90 дней — обратитесь в поддержку если нужно восстановить случайно удалённый репо.
На локальной машине: локальная копия репозитория никуда не денется. Она продолжит работать как обычный Git репозиторий, просто push в удалённый репо будет выдавать ошибку.
Удаление локальной копии #
После удаления на GitHub, если локальная копия тоже не нужна:
# Удалить папку репозитория полностью
rm -rf my-repo
# На Windows (Git Bash)
rm -rf my-repo
# Или через File Explorer — просто удалить папку
Оставить код локально, но отключить от GitHub #
Если хотите сохранить код на компьютере, но отвязать от GitHub:
# Удалить связь с удалённым репозиторием
git remote remove origin
# Проверить что remote удалён
git remote -v
# Должно быть пусто
# Теперь это независимый локальный репозиторий
# Все файлы и история сохранены
Удаление только некоторых веток вместо всего репозитория #
Если нужно не удалить репозиторий, а только очистить ненужные ветки:
# Удалить удалённую ветку
git push origin --delete feature/old-branch
# Удалить локальную ветку
git branch -d feature/old-branch
Часто задаваемые вопросы #
Что происходит с кодом после удаления репозитория? Репозиторий немедленно становится недоступным на GitHub. Форки превращаются в независимые репозитории. GitHub хранит данные для возможного восстановления через поддержку в течение 90 дней. Локальная копия на вашем компьютере не затрагивается.
Как восстановить удалённый репозиторий? Обратитесь в поддержку GitHub (support.github.com) в течение 90 дней после удаления. Требуется быстрое действие — после 90 дней данные удаляются без возможности восстановления. Если у вас есть локальная копия или bare-clone — можно создать новый репозиторий и загрузить туда.
Можно ли удалить репозиторий если я не являюсь владельцем? Нет. Только владелец (Owner) репозитория может удалить его. Если репо в организации — только Owner или администраторы организации. Разработчики с доступом push не могут удалять репо.
Останется ли локальная копия если удалить репозиторий на GitHub? Да, полностью сохранится. Git хранит всю историю, ветки и теги локально в папке .git. Только операции push в удалённый репо перестанут работать. Вы сможете продолжить работу локально.
Как удалить только некоторые ветки вместо всего репозитория? git push origin --delete branch-name — удаляет удалённую ветку на GitHub. git branch -d branch-name — удаляет локальную ветку. Репо остаётся на месте.
Чем отличается удаление репо от архивирования? Удаление полностью убирает репо с GitHub (с возможностью восстановления 90 дней). Архивирование сохраняет доступ к коду для чтения, но блокирует создание коммитов и форков. Архивирование — более безопасная альтернатива если история может понадобиться.
Что происходит с форками репозитория при удалении #
Один из частых вопросов: пропадут ли форки, если удалить исходный репозиторий? Нет — форки становятся полностью независимыми репозиториями:
# Исходный репозиторий удален
# Но форки продолжают работать
# На fork'е можно работать как обычно
git push origin feature
git merge main
# Ссылка на исходный репо остаётся в метаданных GitHub,
# но потом покажет "upstream repository has been deleted"
Форки не потеряют:
- Историю коммитов
- Ветки и теги
- Pull request’ы (если есть)
- Настройки
Если форк был вспомогательным и исходный репо удален — форк можно безопасно удалить как обычный репозиторий.
Альтернатива удалению: архивирование репозитория #
Вместо удаления можно архивировать репо. Это читаемое состояние: история полностью сохранена, но никто не может добавлять коммиты или делать fork’и:
1. Откроить Settings репозитория
2. Прокрутить до "Danger Zone"
3. Нажать "Archive this repository"
4. Ввести имя репо для подтверждения
5. Нажать "I understand, archive this repository"
Архивированный репо:
- Остаётся доступен для просмотра и clone
- Нельзя добавлять коммиты, создавать ветки
- Нельзя создавать форки
- Остаётся в истории вашего профиля
Это идеальный вариант если репо больше не активно, но история может понадобиться.
Восстановление удалённого репозитория #
GitHub сохраняет данные удалённых репозиториев в течение 90 дней в целях восстановления. Однако восстановление требует прямой помощи поддержки и работает только в течение этого периода.
Для восстановления:
1. Перейти на https://github.com/contact
2. Выбрать "Account and billing" → "Account information"
3. В сообщении объяснить что репо было удалено случайно
4. Указать имя репо и когда оно было удалено
5. Ждать ответа поддержки GitHub
Внимание: восстановление гарантировано только если:
- Прошло менее 90 дней после удаления
- Вы владелец репо
- У GitHub есть данные восстановления
Более надежный способ — хранить локальную копию всех важных репозиториев.
Удаление репозитория через GitHub CLI (gh) #
Для автоматизации или работы из командной строки используйте GitHub CLI:
# Установка gh (если не установлено)
# Windows: choco install gh
# macOS: brew install gh
# Linux: sudo apt install gh (или другой пакетный менеджер)
# Проверить авторизацию
gh auth status
# Удалить репозиторий через CLI
gh repo delete my-username/my-repo
# Будет запрос подтверждения
# Это опасно? Are you sure you want to delete my-username/my-repo?
# Ввести имя репо для подтверждения
При использовании gh важно убедиться в имени репо — опечатка может привести к удалению не того репозитория.
# Безопасный вариант — сначала показать что будет удалено
gh repo view my-username/my-repo
# Потом удалить если всё верно
gh repo delete my-username/my-repo --confirm
Перевод репозитория в другой аккаунт вместо удаления #
Если нужно передать репо другому пользователю или организации, вместо удаления выполните передачу:
1. Settings репозитория → "Danger Zone"
2. Нажать "Transfer ownership"
3. Ввести имя нового владельца (пользователя или организации)
4. Подтвердить
После передачи:
- URL репо изменится на новый путь
- История и все ветки перейдут новому владельцу
- Вы потеряете доступ (если не будете добавлены в организацию)
Это намного лучше удаления если репо все ещё используется другими разработчиками.
Часто допускаемые ошибки при удалении #
Ошибка 1: Удаление без резервной копии #
Проблема: репо содержит нужный код или историю, удалили без backup.
Решение: создайте резервную копию перед любым удалением:
git clone --bare https://github.com/user/repo.git repo-backup.git
Ошибка 2: Удаление через Settings’а когда нужен был git remote remove #
Проблема: удалили весь репо вместо отключения от remote.
Решение: перед удалением try:
# Отключить от удалённого репо
git remote remove origin
# Локальный репо остаётся со всей историей
Ошибка 3: Не сказать команде что репо удаляется #
Проблема: другие разработчики не знают и начинают делать push в удалённый репо, который уже не существует.
Решение: архивируйте вместо удаления или скажите команде заранее.
Восстановление репо из локальной копии #
Если удалили репозиторий без резервной копии но у вас осталась локальная рабочая директория:
# Локальная папка my-project всё ещё содержит всю историю
cd my-project
# Создать новый пустой репозиторий на GitHub через UI
# https://github.com/new
# Добавить новый remote в локальное репо
git remote add origin https://github.com/your-username/my-repo-restored.git
# Отправить всю историю на GitHub
git branch -M main
git push -u origin main
# Отправить все ветки
git push --all origin
# Отправить все теги
git push --tags origin
# Проверить что всё загрузилось
git remote -v
git log --oneline -5
Таким образом можно полностью восстановить репо даже если GitHub-версия была удалена.
Резервная копия по расписанию #
Для важных проектов рекомендуется автоматическая резервная копия:
#!/bin/bash
# backup_repos.sh - скрипт для ежедневной резервной копии
BACKUP_DIR="$HOME/backups/git-repos"
mkdir -p "$BACKUP_DIR"
# Список репо для резервной копии
REPOS=(
"https://github.com/user/repo1.git"
"https://github.com/user/repo2.git"
"https://github.com/user/repo3.git"
)
for repo in "${REPOS[@]}"; do
repo_name=$(basename "$repo" .git)
if [ -d "$BACKUP_DIR/$repo_name.git" ]; then
# Обновить существующий backup
cd "$BACKUP_DIR/$repo_name.git"
git fetch origin
else
# Создать новый backup
git clone --bare "$repo" "$BACKUP_DIR/$repo_name.git"
fi
done
echo "Backup completed at $(date)"
Добавить в crontab для ежедневного выполнения:
# Каждый день в 02:00
0 2 * * * /path/to/backup_repos.sh >> /var/log/git-backup.log 2>&1
Практический чек-лист перед удалением #
□ Создал резервную копию: git clone --bare https://...
□ Сказал команде что будет удаление
□ Проверил что это правильный репозиторий
□ Убедился что нет важного кода, который больше нигде не сохранён
□ Упомянул других разработчиков / владельцев
□ Подождал ответов если это командный проект
□ Окончательно решил что данные не нужны
Если хотя бы один пункт не сделан — не удаляйте
Заключение #
Удаление репозитория с GitHub — необратимое действие, требующее осторожности:
- Всегда создавайте резервную копию:
git clone --bareсодержит полную историю - Рассмотрите альтернативы: архивирование или передача владельца часто лучше
- Сообщите команде: другие разработчики должны знать о плане
- Используйте восстановление если срочно: GitHub сохраняет данные 90 дней
- После удаления — локальные копии сохраняются: история на вашей машине не пропадает
Для управления удалёнными репозиториями используйте git remote add.