Как вернуться к предыдущей версии в git

У меня есть контрольная копия удаленного репозитория git на моей рабочей станции. Я случайно совершил изменение в моем местном и нажал на удаленный. Теперь я хочу удалить последнюю фиксацию и вернуться к предыдущей фиксации, и то же самое нужно нажать на удаленный.

Я в порядке, если это новая фиксация с сообщением фиксации. Как это сделать?

Ответ 1

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

Более безопасный вариант - просто сделать

git revert HEAD~1 
git push origin master

git revert будет записывать новый коммит, который отменяет все эффекты предыдущего

Ответ 2

Если никто еще не клонировал ваше обновленное дистанционное репо, вы можете:

git reset --hard HEAD~
git push --force

Это заставит локальную и удаленную историю отказаться от последней фиксации.
(Сначала проверьте с помощью git fetch, что никаких новых коммитов не было сделано с момента вашего неправильного коммита)

Если новая история не является опцией, тогда git revert более безопасен и будет приведет к новой фиксации, отменяющей предыдущую: вы можете нажать эту новую фиксацию.