через атом или интерфейс командной строки
Я покажу вам две опции интерфейса командной строки.
Давайте начнем в новом хранилище.
$ mkdir how_to_undo_stuff_in_git
$ cd how_to_undo_stuff_in_git
$ git init # Initialize git (only needed once)
Сначала мы создадим один файл myfile
с содержанием foo
.
$ echo foo > myfile
$ git add myfile
$ git commit -m "Add foo content"
Далее мы собираемся применить второй коммит, который мы хотим отменить.
$ echo bar >> myfile
$ git add bar
$ git commit -m "Add bar content (bad commit)"
Использование 'revert'
Команда git revert
может "отменить" коммит для вас. Он делает это, применяя новый коммит, который, ну, в общем, отменяет ваши изменения.
Просто запустите
$ git revert HEAD
Теперь вы можете просмотреть содержимое myfile
и увидеть, что строка "bar" исчезла. Вы также можете запустить git log
, и это должно выглядеть так
Author: Alan Turing <alan@hotmail.com>
Date: Sat Mar 9 15:28:51 2019 +0000
Revert "bar content"
This reverts commit bc483fc6fd069c70f6822a8b840f74ced64d32c8.
commit bc483fc6fd069c70f6822a8b840f74ced64d32c8
Author: Alan Turing <alan@hotmail.com>
Date: Sat Mar 9 15:28:35 2019 +0000
bar content
commit f6450431be631220210eb83c152d907058a6337d
Author: Alan Turing <alan@hotmail.com>
Date: Sat Mar 9 15:27:23 2019 +0000
foo content
Использование «перезагрузки» (будьте осторожны!)
git
также предлагает возможность действительно «стереть» коммит, в отличие от создания нового коммита, который отменяет предыдущий коммит. Будьте осторожны при запуске git reset
, потому что вы можете потерять часть своей работы, если случайно предоставите ей неправильные аргументы. Взято из: https://ohshitgit.com/#accidental-commit-master
$ git reset HEAD~ --hard
Это сотрет последний коммит.