Как прокомментировал Джефроми,
git checkout master
git reset --hard origin/master
делает все правильно: перевод мастера в исходное состояние. (Если вы уже находитесь в ветке master
, вы можете пропустить первую команду.) Она также оставляет нетронутым журнал изменений в ветке.
Старый неполноценный ответ:
git checkout dev
git branch -D master
git checkout master
Это переключает на другую ветку (в данном случае "dev" - выберите любую другую ветку, которая у вас может быть), удаляет локальную ветку master
, а затем воссоздает ее из remotes/origin/master
(которая может не работать в зависимости от ваших настроек и Git версия). Последняя команда часто эквивалентна
git checkout -b master remotes/origin/master
По сравнению с новым ответом, приведенным выше, он имеет тот недостаток, что reflog уничтожается и воссоздается (т.е. вы не можете так просто отменить это при необходимости), и менее понятно, что здесь происходит. Кроме того, у вас должна быть другая ветвь, на которую вы можете переключаться во время удаления и восстановления (но это было в первоначальном вопросе).