Отмена подготовки изменений
Допустим, мы решили выделить наш Hello, World!. Давай превратим его в заголовок!
Для этого обернём содержимое hello.html в теги <head>. Результат должен выглядеть так:
<head>Hello, World!</head>Оберни текст в hello.html тегами <head> </head> и добавь изменения в область подготовки.
Секундочку... Я сказал теги <head> </head>? Ой, извини, конечно же я имел в виду <h1> </h1>! Увы, изменения уже подготовлены.
Прежде чем что-то предпринимать, давай выполним git status, чтобы понять, что вообще происходит.
СУПЕРПОЛЕЗНАЯ ПОДСКАЗКА: В терминале можно использовать стрелки и для навигации по истории команд. Это отличный способ не печатать одно и то же по сто раз.
Выполни команду git status, чтобы проверить состояние репозитория.
Должно получиться что-то такое:
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: hello.html
Давай последуем совету команды и уберём изменения из области подготовки. Для этого используем команду git restore с флагом --staged.
Выполни команду git restore --staged ., чтобы очистить область подготовки.
Давай снова проверим статус.
Выполни команду git status, чтобы проверить состояние репозитория.
Вывод должен быть таким:
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: hello.html
no changes added to commit (use "git add" and/or "git commit -a")
Сюрприз-сюрприз! Изменения всё ещё на месте! Зато они больше не подготовлены для коммита.
Чтобы отменить их полностью, можно выполнить git restore без флагов (как на предыдущем шаге курса).
Выполни git restore ., чтобы очистить рабочее дерево.
Давай снова проверим статус.
Выполни команду git status, чтобы проверить состояние репозитория.
Вывод должен быть таким:
On branch main
nothing to commit, working tree clean
Вот и всё! Изменения отменены, и рабочее дерево снова чистое.
На самом деле мы могли бы вернуть рабочее дерево в чистое состояние за один раз. Команда git restore работает в двух режимах: без флагов git restore работает с рабочим деревом. С --staged — с областью подготовки. Можно передать оба флага одновременно, чтобы разом очистить и область подготовки, и рабочее дерево: git restore --staged --worktree ..
Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.
(требуется войти в аккаунт)