Как отменить git pull

Вы когда-нибудь работали над проектом, выполняли git pull и только потом понимали, что сильно напортачили? Теперь весь ваш код был заменен тем, что было в удаленном репозитории — и иногда это не то, что вам нужно. В такие моменты легко запаниковать, но, к счастью, есть несколько способов вернуть ваш код в прежнее состояние и отменить git pull.

Прежде всего, сделайте копию вашего проекта на случай, если вы ухудшите ситуацию. Также обратите внимание, что эти команды приведут к потере всех не внесенных изменений — поэтому резервное копирование поможет вам сохранить эти данные перед продолжением работы. По крайней мере, тогда у вас будет та версия, которая есть сейчас. После создания резервной копии вы захотите получить список всей истории фиксаций. Это можно сделать, выполнив команду git reflog:

git reflog
Войти в полноэкранный режим Выйти из полноэкранного режима

Это создаст список, который выглядит следующим образом:

648e314 (HEAD -> master, origin/master) HEAD@{0}: commit: Design refresh
b0168ee HEAD@{1}: commit: Minor CSS tweaks
514a02f HEAD@{2}: commit: Fixed extra curly brace
b432ba7 HEAD@{3}: commit: fixed border-radius
a707d13 HEAD@{4}: commit: fixed image border-radius
abf89a3 HEAD@{5}: commit: updated look and feel
Войти в полноэкранный режим Выйти из полноэкранного режима

Выберите версию, к которой вы хотите вернуться. Например, если бы я хотел вернуться к версии ‘Minor CSS tweaks’, я бы выбрал ID b0168ee. Затем выполните следующую команду, чтобы вернуть ваш репозиторий к этой версии:

git reset --hard b0168ee
Войти в полноэкранный режим Выйти из полноэкранного режима

Это довольно просто, и дает вам большой контроль над тем, какую версию вы восстанавливаете. Однако есть и другой, более простой способ — указать время. Если вы не хотите запускать git reflog, вы можете выполнить следующую команду для возврата к версии вашего репозитория, которая была 30 минут назад, предполагая, что ваша ветвь master. Обратите внимание, если вы долгое время работали над определенной веткой, это может отбросить вас далеко назад. В этом случае лучше использовать предыдущий метод — но если у вас есть резервная копия, то все будет в порядке. 😄

git reset --hard master@{"30 minutes ago"}
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий