Отмена изменений
А теперь посмотрим, как отменить изменение и вернуться к предыдущему работоспособному состоянию. Сначала добавьте в файл hello_world.py новую строку:
hello_world.py
print("Hello Git world!")
print("Hello everyone.")
print("Oh no, I broke the project!")
Сохраните и запустите этот файл.
Из информации статуса видно, что Git видит изменения:
git_practice$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
(1) # modified: hello_world.py
#
no changes added to commit (use "git add" and/or "git commit -a")
git_practice$
Git понимает, что файл hello_world.py был изменен (1) , и при желании мы можем закрепить изменения. Но на этот раз вместо закрепления мы хотим вернуться к последней операции закрепления, в которой проект был заведомо работоспособным. С hello_world.py ничего делать не нужно: ни удалять строку, ни использовать функцию отмены в текстовом редакторе. Вместо этого введите следующие команды в терминальном сеансе:
git_practice$ git checkout .
git_practice$ git status
# On branch master
nothing to commit, working directory clean
git_practice$
Команда git checkout позволяет работать с любым предшествующим закреплением. Команда git checkout . отменяет все изменения, внесенные с момента последнего закрепления, и восстанавливает проект в последнем закрепленном состоянии.
Вернувшись в текстовый редактор, вы увидите, что файл hello_world.py вернулся к следующему состоянию:
print("Hello Git world!")
print("Hello everyone.")
И хотя в таком простом проекте возврат к предыдущему состоянию может показаться тривиальным, если бы мы работали над большим проектом с десятками измененных файлов, все файлы, измененные с момента последнего закрепления, вернулись бы к предыдущему состоянию. Эта возможность невероятно полезна: вы можете вносить любые изменения в ходе реализации новой функции, а если они не сработают, вы просто отменяете их без вреда для проекта. Не нужно запоминать эти изменения и отменять их вручную; Git делает все это за вас.
примечание
Щелкните в окне редактора, чтобы обновить файл и увидеть предыдущую версию.