GIT — Soft Reset — Hard Reset

Admin GIT

Откат изменений в github с помощью команд GIT.

Если что-то пошло не так, то идем по порядку, от наименьшего (возможного) вреда:

Откатываем ветку

Всегда лучше делать откат с помощью revert merge на самом сайте github.com.

Вносим исправляющий коммит

Если ветка не мерджилась, а изменения были напрямую в мастер, то лучше отправить дополнительный коммит, который исправит положение.

GIT — Soft Reset

Посмотреть референс нужного коммита:

2sf47sddss9fdsf345sdf33232bb1ae333d8aa

И сделать к нему реверт:

git revert -m 1 2sf47sddss9fdsf345sdf33232bb1ae333d8aa

Альтернативный вариант. Мягкий сброс на последний коммит:

git reset --soft HEAD~1

Hard Reset

Hard Reset — откатывает последние изменения, которые если не сохранены отдельно, будут потеряны безвозвратно. Самый крайний вариант. Использовать с осторожностью.

Hard Reset может пригодиться когда был реверт пулл реквеста, который снова нужно откатить назад. Такая безумная цепочка приводит к неприятным последствиям, но такое иногда бывает. В этом случае при откате через revert (Soft Reset) изменения не появятся, потому что будут считаться более старой версией. И вот здесь поможет «жесткий» откат.

Сброс на последний коммит:

git reset --hard HEAD~1

Альтернативный вариант. Сброс до конкретного референса (это должен быть обычный коммит, не пулл реквест и не мердж):

git reset --hard 2sf47sddss9fdsf345sdf33232bb1ae333d8aa

Затем принудительно отправляем на сервер:

git push --force

Или так:

git push -f

После этого если кто-то работал с этой веткой ему нужно также сбросить:

git checkout название_ветки
git reset --hard origin/название_ветки

Откатываем отдельные файлы

Смотрим какие файлы были добавлены:

git status

Предположим, видим там файл .gitignore, удаляем его:

git reset HEAD .gitignore

или альтернативный вариант

git checkout -- .gitignore
Метки:

На сайте отсутствует реклама! Значете почему?

Помогать людям - моё хобби. А навыки разработчика позволяют не парится нулевой монетизизацией этого сайта. Хотя...

Если вам помогла информация, то даже от доната в 40 рублей мне будет приятно. Докину немного, куплю латте в макдаке, вспомню за чей счет банкет и карма вам зачтется!

Но и просто оставленный комментарий благодарности ниже принесет мне улыбку радости :)

А если захочется написать всякие гадости с переходом на личности, да тоже не стесняйтесь, но обычно я отправляю такое в спам. Люблю, когда дома чисто.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"GIT — Soft Reset — Hard Reset"