↓Перейти к содержанию
  1. Git: руководства и команды/

Как удалить репозиторий с GitHub: пошаговое руководство

··7 минут·

Удаление репозитория с 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 — необратимое действие, требующее осторожности:

  1. Всегда создавайте резервную копию: git clone --bare содержит полную историю
  2. Рассмотрите альтернативы: архивирование или передача владельца часто лучше
  3. Сообщите команде: другие разработчики должны знать о плане
  4. Используйте восстановление если срочно: GitHub сохраняет данные 90 дней
  5. После удаления — локальные копии сохраняются: история на вашей машине не пропадает

Для управления удалёнными репозиториями используйте git remote add.