Теперь рассмотрим еще одну распространенную операцию: удаление. По своей сути удаление файла — это такое же изменение репозитория, как и уже известные Вам операции добавления и редактирования файлов. Однако есть одно важное отличие: для внесения в ревизию информации о том, что файл должен быть удален, недостаточно простого удаления файла из рабочей папки. Вы также должны отметить этот файл в staging area как удаленный с помощью команды git rm
.
Перейдите в тренировочный репозиторий и удалите файл README
:
rm ./README
Статус репозитория теперь должен содержать следующие строки:
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: README
#
Для включения в следующую ревизию информации о том, что файл необходимо удалить, выполните следующую команду:
git rm ./README
Обратите внимание, что теперь файл внесен в подготовленную область как удаленный:
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: README
Внимание! Вы должны четко понимать разницу между файлами, находящимися под контролем версий и неотслеживаемыми файлами. Если Вы удаляете файл, существовавший в прошлых ревизиях, Вы всегда имеете возможность его восстановить из базы данных объектов Git (о том, как это сделать, подробно рассказано в главе «Работа с ревизиями»). Если же Вы собираетесь удалить файл, добавленный после момента последней фиксации изменений, Вы должны быть предельно внимательны: файлы, внесенные в область подготовки, также поддаются восстановлению, но Вы можете непреднамеренно потерять их; неотслеживаемые же файлы вовсе не поддаются восстановлению средствами Git.
Редактирование файлов | Подготовка изменений |