Рабочая директория
После клонирования репозитория my-git мы можем увидеть внутри него директорию .git и добавленные нами файлы. Посмотрим, что произойдет, если удалить один из файлов:
Git сообщает, что файл был удален, и предлагает команды для восстановления или коммита изменений. Здесь стоит остановиться и немного погрузиться в то, как работает git. Откуда он вообще знает, что файл был удален? Ответ на этот вопрос вы узнаете в этом уроке.
Как узнать статус репозитория
Внутри директории проекта мы видим файлы проекта с одной стороны и директорию .git с другой.
Репозиторием является именно директория .git. Она хранит всю информацию о том, какие были изменения, а также сами изменения.
А вот все, что находится снаружи, это так называемая рабочая директория (working directory). Эти файлы извлекаются из .git в момент клонирования.
Каждый раз, когда мы производим изменения в рабочей директории, Git сравнивает измененные файлы с файлами внутри .git, то есть их состоянием на момент последнего коммита. Если есть изменения относительно последней зафиксированной версии, то Git сообщает нам об этом в выводе команды git status
.
В этом очень легко убедиться, если последовать совету Git в выводе выше и восстановить удаленный файл:
Можно удалить все файлы в рабочей директории и потом без проблем их восстановить. Так мы достигаем важной цели — создаем возможность быстро восстановить последнюю версию кода, если внесенные изменения нас больше не устраивают.
Еще мы можем закоммитить их, если это нужно:
Обратите внимание на важную деталь. Независимо от того, удаляем мы файл, добавляем или меняем, процедура выполнения коммита не меняется. После изменений всегда делается git add
, который подготавливает изменение к коммиту (а не добавляет файл). После этого выполняется коммит.
Кстати, у Git есть команда git rm
, которая объединяет в себе удаление и подготовку к коммиту:
Самостоятельная работа
Выполните все шаги из урока
Удалите файл NEW.md и сделайте коммит
Добавьте файл INFO.md с текстом git is awesome! и сделайте коммит
Залейте изменения на GitHub с помощью
git push
Обновите страницу репозитория на GitHub и изучите произошедшие изменения