@ATauenis

Как в git вернуться к состоянию как на сервере?

Иногда бывает, что по запарке запутаюсь в ветвях Git репозитория при всяких merge, rebase, cherry-pick, checkout и т.д.. К счастью, это случается до того, как за-push-ил всю эту галиматью на сервер. Но локальная копия к тому моменту испорчена донельзя.

Как сбросить всё, что натворил, до состояния тупо как на сервере? Можно просто всё удалить, и заново склонировать репозиторий. Но это не по спортивному, плюс теряются всякие файлы из gitignore, которые при этом надо спасать руками. Нужен метод по-цивилизованнее, но такой же эффективный в плане забывания всех не отправленных изменений.
  • Вопрос задан
  • 628 просмотров
Решения вопроса 3
git checkout master -f
Ответ написан
JaxAdam
@JaxAdam
Junior Full-Stack Developer
git pull
Все данные как на репо.
Ответ написан
Комментировать
@ATauenis Автор вопроса
Решилось запуском по очереди для каждой существующей ветки:
git checkout имяветки -f
git pull origin/имяветки


Далее через Visual Studio Team Explorer удаляются лишние (несуществующие на сервере) ветки. Через консоль не захотело (ругалось про head). Возможно, нужен был какой-то ключ, т.к. в VS тоже был вопрос - хочу ли я потерять состояние head (которое с чем-то не стыкуется), но оно и было нужно. Задача все равно привести состояние локальной копии в идентичное с тем, что на GitHub.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы