Вы можете вернуться в историю Git. Э.Г.
git reset --soft HEAD~N
где N
- число последних коммитов, которые вы хотите отменить. Параметр --soft
будет сохранять изменения удаленного репо локально на сцене. Вы также можете использовать параметр --hard
, чтобы полностью удалить изменения (вы всегда можете извлечь их из удаленного репо).
Другой вариант - просмотреть ваш gitlog с помощью команды git log
, найти фиксацию, которая указывает на состояние до того, как было сделано решающее изменение (вы можете использовать grep
для фильтрации сообщений фиксации), и проверить эту фиксацию с помощью команды.
git checkout COMMIT_HASH
где COMMIT_HASH
- ваш хеш коммита
Вернувшись в историю, попытайтесь найти ваш потерянный код. Затем вы можете либо скопировать его куда-нибудь, выполнить git reset --hard
, git pull
, вставить его в последний источник и выполнить новый коммит, либо попытаться использовать функцию выбора вишни в git.
Обратите внимание, , предложенные решения будут возможны, только если недавние толчки не переопределяют историю репо (это может произойти в случае пуша с параметром --force
) или они произошли, но у вас нет еще не потянул их
Кроме того, помните, что git распространяется VCS , поэтому в случае толчка с силой и вытягиванием вы можете попытаться найти коллегу из вашей команды, который еще не выполнял вытягивание и восстановить историю из его местного репо.