@romicohen
Системный Архитектор

Есть ли простой способ откатить все изменения в рабочей директории к последнему коммиту?

Допустим я сделал коммит "my last commit"

а после этого удалил в рабочей директории две папки, три файла, и внес изменения в 10 файлов.

могу ли я вернуть состояние рабочей директории к исходному, которое было на момент, когда я сделал последний коммит "my last commit"?

я гуглил. но во всех текстах начинают морочить голову какими-то "тремя ветками", чем-то там еще, и к пятому абзацу я уже вообще ничего не понимаю :)

а мне просто надо откатить всё к последнему состоянию, для которого я сделал коммит - для этого ведь Git и сделан (ну, условно говоря).

допустим, изменения я в индекс не добавлял, вообще ничего с гитом не делал, просто внес изменения в структуру файлов и папок.

как?

upd.: пока писал это - подумал: сделать еще один коммит с изменениями, а потом git checkout <хэш предыдущего коммита>, а потом удалить коммит с изменениями - это самый простой способ будет? или тогда изменения останутся?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 2
Lynn
@Lynn
nginx, js, css
Даже два
git checkout .
или
git reset --hard
Ответ написан
Aetae
@Aetae
Тлен
git stash -u && git stash drop
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@spaceatmoon
Есть даже круче, я так откатывал неудачные rebase.
Нам нужны 3 команды
git reflog позволяет просматривать историю операций с репозиторием.
get reset --hard "HEAD@{число}" с помощью этой команды мы можем вытянуть любое состояние репозитория
git cherry-pick эта команда позволяет вытащить любой коммит по хэшу, будь-то из другой ветки, истории

git cherry-pick "HEAD@{3}" - так мы вытащили наш запрятанный коммит
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы