Удаление репозитория
Случается, что история репозитория нарушается и вы не знаете, как ее восстановить. Если это произойдет, для начала обратитесь за помощью методами, описанными в приложении В. Если исправить ошибку не удалось, а вы работаете над проектом в одиночку, продолжайте работать с файлами, но сотрите историю проекта, удалив каталог .git. Это не повлияет на текущее состояние файлов, но приведет к удалению всех закреплений, так что вы потеряете возможность извлекать другие состояния проекта.
Для этого либо откройте программу для работы с файлами и удалите репозиторий .git, либо сделайте это в командной строке. После этого необходимо создать новый репозиторий, чтобы снова отслеживать изменения в проекте. Вот как выглядит весь процесс в терминальном сеансе:
(1) git_practice$ git status
# On branch master
nothing to commit, working directory clean
(2)git_practice$ rm -rf .git
(3)git_practice$ git status
fatal: Not a git repository (or any of the parent directories): .git
(4)git_practice$ git init
Initialized empty Git repository in git_practice/.git/
(5)git_practice$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# hello_world.py
#
nothing added to commit but untracked files present (use "git add" to track)
? git_practice$ git add .
git_practice$ git commit -m "Starting over."
[master (root-commit) 05f5e01] Starting over.
2 files changed, 2 insertions(+)
create mode 100644 .gitignore
create mode 100644 hello_world.py
? git_practice$ git status
# On branch master
nothing to commit, working directory clean
git_practice$
Сначала мы проверяем статус и видим, что рабочий каталог чист (1) . Затем команда rm -rf .git (rmdir /s .git в Windows) удаляет каталог .git (2). При проверке статуса после удаления каталога .git выдается сообщение об отсутствии репозитория Git (3). Вся информация, используемая Git для отслеживания репозитория, хранится в каталоге .git, поэтому его удаление приводит к уничтожению всего репозитория.
Тогда мы можем использовать команду git init для создания нового репозитория (4). Проверка статуса показывает, что все вернулось к исходному состоянию, ожидая первого закрепления (5). Мы добавляем файлы и выполняем первое закрепление ?. Теперь проверка статуса показывает, что проект находится в новой ветви master, а закреплять пока нечего ?.
Работа с системой контроля версий потребует некоторых усилий, но стоит немного освоиться, и вам уже не захочется работать без нее.